次の一連のファイルがあるディレクトリがあります。
cheatsheetold.aux
cheatsheetold.log
cheatsheetold.out
cheatsheetold.pdf
cheatsheetold.synctex.gz
cheatsheetold.tex
cheatsheetnew.aux
cheatsheetnew.log
cheatsheetnew.out
cheatsheetnew.pdf
cheatsheetnew.synctex.gz
cheatsheetnew.tex
私がやりたいのは、すべてのcheetsheetold.
cheatsheetold.aux
cheatsheetold.log
cheatsheetold.out
cheatsheetold.pdf
cheatsheetold.synctex.gz
cheatsheetold.tex
cheatsheetnew
に触れずに
cheatsheetnew.aux
cheatsheetnew.log
cheatsheetnew.out
cheatsheetnew.pdf
cheatsheetnew.synctex.gz
cheatsheetnew.tex
私はすでに この他の質問 を見ましたが、両方のファイル名に完全な拡張子のセットがあるため、問題は解決しませんでした
ファイルを削除するときに、どのシェル(bash、fish、zsh、csh)で何らかのワイルドカードを使用したいかは明記されていませんでした。
bash
は著名なシェルであるため、このコマンドを使用するだけでよいと述べています。
rm -- cheatsheetold.*
ワイルドカード*
は--
の後に使用され、bashシェル拡張によるインデントされていない事故を回避することに注意してください。
コマンドラインenv | grep 'Shell'
は、使用するシェルを表示する場合があります。また、POSIXが削減されたdash
シェルでコマンドラインをテストしました。
他のシェル(cshやtshやfishなど)は使用しないので、そこでグロビングがどのように機能するかわかりません。
シェルが実行しているアイデアを得る別の方法は、このps -p $$
である可能性があります。ここで、$$
は現在のプロセス(シェル)のPIDであり、psのPIDに制限されたプロセスをリストするツール現在のシェル。
Unixにはファイル名拡張子も、MicrosoftのWindowsもありません(Windows ME以降ではありません。ただし、file-Explorerにはまだ概念があります)。 ...で始まるすべてのファイルを検索する必要があります(この場合、cheatsheetold.
で始まります。
これはcheatsheetold.*
で実行できます。次に、ファイルリストをrm
に渡します。任意のコマンドで使用できます。 rm
のものではありません。
echo cheatsheetold.*
で練習する
ワイルドカードを使用できますが、一致する可能性のある他のファイルを削除する可能性があるため、注意が必要です。
rm cheatsheetold.*
上記のコマンドは、名前がcheatsheetold.
で始まり、その後に任意の拡張子が続くファイルを削除します。