1つを除いて.log拡張子を持つすべてのファイルを一覧表示する

1つを除いて.log拡張子を持つすべてのファイルを一覧表示する

.logfile以外の拡張子を持つすべてのファイルを一覧表示したいと思いますbackup.log

私は次のコマンドを試しました。

ls *.log -I "backup.log"

ただし、すべてのログファイルが一覧表示されます。でもbackup.log

を除くすべてのログファイルをどのように一覧表示できますかbackup.log

答え1

シェルはワイルドカード文字を拡張して引数の1つとして含めますlsbackup.log

拡張モードを有効にするには(有効にしてくださいshopt -s extglob):

ls !(backup).log

答え2

1つの可能性は次のとおりです。

 find . -maxdepth 1 -mindepth 1 -name \*.log -a -not -name backup.log

つまり、現在のディレクトリまたはその下で正確な深さが1のすべてのファイルを探します(したがって、実際には現在のディレクトリ自体の名前ではなく現在のディレクトリのみ)*.logbackup.log

答え3

TxR:

$ ls *.patch
install-tests.patch  match.patch  netbsd.patch  specials.patch  wlist.patch
$ txr -t '(glob "*.patch")'
install-tests.patch
match.patch
netbsd.patch
specials.patch
wlist.patch
$ txr -t '(set-diff (glob "*.patch") (glob "[mn]*.patch"))'
install-tests.patch
specials.patch
wlist.patch

答え4

ls次の解析結果はどうですかgrep

ls -l *.log | grep -v backup.log

関連情報