次のファイルセットを含むディレクトリがあります。
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
私はすでにそれを見ましたこれは別の質問ですしかし、両方のファイル名に完全な拡張子があるため、問題は解決されません。
答え1
Unixにはファイル拡張子がなく、MicrosoftのWindowsにもありません(Windows ME以降ではありませんが、ファイルエクスプローラにはまだ概念があります)。あなたがしなければならないことは(あなたの場合cheatsheetold.
。
を使用してこれを行うことができますcheatsheetold.*
。次にファイルリストをに渡しますrm
。どのコマンドでも使用できます。これは問題ではありませんrm
。
練習するecho cheatsheetold.*
答え2
ファイルを削除するときに、どのようなワイルドカードを使用したいシェル(bash、fish、zsh、csh)についても説明がありません。
bash
よく知られているシェルなので、単に次のコマンドを使用できると述べています。
rm -- cheatsheetold.*
*
--
bash シェル拡張によるインデントされないエラーを回避するには、as の後にワイルドカードを使用します。
コマンドラインにenv | grep 'SHELL'
使用中のシェルが表示されることがあります。また、より単純化されたPOSIXシェルでコマンドラインをテストしましたdash
。
私は他のシェル(例:csh、tsh、またはFish)をまったく使用していないので、ここでglobbingがどのように機能するかはわかりません。
どのシェルが実行されているかを知るもう1つの方法は、現在のプロセス(シェル)のPIDがps -p $$
どこにあるべきか、およびpsツールが現在のシェルのPIDに制限されているプロセスを一覧表示することです。$$
答え3
ワイルドカードを使用できますが、一致する他のファイルが削除される可能性があるため、非常に注意する必要があります。
rm cheatsheetold.*
上記のコマンドは、cheatsheetold.
名前が何であれ開始し、その後に何も(拡張子など)来るファイルを削除します。