web-dev-qa-db-ja.com

特定の名前で拡張子が異なるすべてのファイルを一度に削除します

次の一連のファイルがあるディレクトリがあります。

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

私はすでに この他の質問 を見ましたが、両方のファイル名に完全な拡張子のセットがあるため、問題は解決しませんでした

5
ecjb

ファイルを削除するときに、どのシェル(bash、fish、zsh、csh)で何らかのワイルドカードを使用したいかは明記されていませんでした。

bashは著名なシェルであるため、このコマンドを使用するだけでよいと述べています。

rm -- cheatsheetold.*

ワイルドカード*--の後に使用され、bashシェル拡張によるインデントされていない事故を回避することに注意してください。

コマンドラインenv | grep 'Shell'は、使用するシェルを表示する場合があります。また、POSIXが削減されたdashシェルでコマンドラインをテストしました。

他のシェル(cshやtshやfishな​​ど)は使用しないので、そこでグロビングがどのように機能するかわかりません。

シェルが実行しているアイデアを得る別の方法は、このps -p $$である可能性があります。ここで、$$は現在のプロセス(シェル)のPIDであり、psのPIDに制限されたプロセスをリストするツール現在のシェル。

https://help.ubuntu.com/community/ShellGlobbing

2
fraleone

Unixにはファイル名拡張子も、MicrosoftのWindowsもありません(Windows ME以降ではありません。ただし、file-Explorerにはまだ概念があります)。 ...で始まるすべてのファイルを検索する必要があります(この場合、cheatsheetold.で始まります。

これはcheatsheetold.*で実行できます。次に、ファイルリストをrmに渡します。任意のコマンドで使用できます。 rmのものではありません。

echo cheatsheetold.*で練習する

5
ctrl-alt-delor

ワイルドカードを使用できますが、一致する可能性のある他のファイルを削除する可能性があるため、注意が必要です。

rm cheatsheetold.*

上記のコマンドは、名前がcheatsheetold.で始まり、その後に任意の拡張子が続くファイルを削除します。

1
Heysus Escobar