すべてのファイル(隠しファイルを含む)をリストするコマンドを見つけようとしていますが、現在のディレクトリと親ディレクトリを除外する必要があります。助けてください。
$ ls -a \.\..
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
(なし.*
などの追加の引数なし)
一連のドットディレクトリを削除したいのですが。私のサーバーでは、ドットとその他の特定のテキストパターン(タイムスタンプ)を追加して削除するディレクトリにマークを付け、自動削除します。時々私はそれを手動で行う必要があります。
私が 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