web-dev-qa-db-ja.com

を除くすべてのファイルを一覧表示するコマンド。 (ドット)および..(ドットドット)

すべてのファイル(隠しファイルを含む)をリストするコマンドを見つけようとしていますが、現在のディレクトリと親ディレクトリを除外する必要があります。助けてください。

$ ls -a \.\..
26
nondoo

ls(1) のドキュメントを読んでください(おそらくman lsを使用)。少なくとも、試す習慣をつける

ls --help

またはより良い(lsがエイリアスされている可能性があるため、たとえば~/.bashrc内)

/bin/ls --help

あなたは何かで始まるでしょう:

Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters

等....

ls -A以上が必要/bin/ls -Aなし.*などの追加の引数なし)

32

一連のドットディレクトリを削除したいのですが。私のサーバーでは、ドットとその他の特定のテキストパターン(タイムスタンプ)を追加して削除するディレクトリにマークを付け、自動削除します。時々私はそれを手動で行う必要があります。

私が Basile Starynkevitch's 応答にコメントしたように、-Aスイッチの下にあるようなグロビングパターンを使用すると、-Aスイッチはその機能を失い、-aと同じように機能します。

 runlevel0@ubuntu:~/scripts$ ls -1dA .*
.
..
.comparepp.sh.swp

ユーザーとしてファイルを削除しようとすると、間違いなくエラーが発生しますが、ルート(!)として何が起こるか考えたくありません。

この場合の私のアプローチは:

for dir in $(ls -1ad .* | tail -n +3) ; do rm -rfv $dir  ; done

ご覧のとおり、ドットを含む最初の2行をテールアウトします。質問への回答を調整するには、次のようにします。

ls -d1A .* | tail -n +3
4
runlevel0