回答:
シェルにドットファイルを一覧ls
表示させ、ディレクトリを参照しないように指示します。
ls -d .*
grep
ベースのアプローチとは異なり、複数列のリストを許可するという利点があります。
ls -d .* | grep -v '^d'
or を使用できます(zshのみ)print -lr .*(.)
記録としては、ls -a
2つ(場合によってはそれ以上の列)が印刷されるため、これは私には機能しないようです。-1
すべてのファイルが独自の行にあることを確認するオプションを使用することをお勧めします。このようなもの:
alias hidden='ls -a1 | grep "^\."'
ls -a | cat
まだ2列で出力しようとしました。GNU lsではなくSolarisを使用していることに言及する必要があります。たぶんそれが理由です。すべての場合において、-1
ソリューションは完璧に機能し、私のハック的な回避策よりもはるかにエレガントです。回答を更新しています。
llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }
lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }
2つのシェル関数はfind
、現在のディレクトリまたはコマンドラインで指定されたディレクトリにあるすべての非表示の通常ファイルのリストを生成するために使用します。
このllsh
関数は、「より長いリスト」を生成しますが、これはのようにわずかに冗長になりますがls -l
、のlsh
ような単一列のリストを生成しますls -1
。
# add it to ~/.bashrc
hidden() { # lists hidden files and directories
find . -maxdepth 1 -name '.?*' -exec ls --color -d {} \;
}
hiddenfiles() { # lists hidden files
find . -maxdepth 1 -type f -name '.?*' -exec ls --color -d {} \;
}
hiddendirs() { # lists directories
find . -maxdepth 1 -type d -name '.?*' -exec ls --color -d {} \;
}
あなたのls
サポートは-Aですか?からman ls
:
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
$ ls --version
ls (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
only
できますが、隠しファイルが必要でした。
ls -A -1 -d -F .* | egrep -v '/$'
以下のコマンドを入力するだけで、上記のものと混同しないでください。
ls -A -1 -d -F .* | egrep -v '/$'
ls
フラグとegrep
コマンドが質問に回答する方法と理由を説明する必要があります。
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"
'ls -a | grep '"'"'^\.'"'"'
ひどいように見えます(この例では、どちらかのペアの二重引用符を交換するだけなので、まったく不要です)が、非常にまれな場合に役立ちます。-C
フラグが必要な場合もあります(複数列の出力を強制します)。この画像を参照imgur.com/a/VIVFP-