1
内のディレクトリがしかし、私はエラー<p>リストの後に一致するファイルとディレクトリの両方を削除する必要があります。 rmfとrm -rfの代わりに?</p> <p>これを達成する方法は?</p>
find: `magsubmit_*': No such file or directory
matching_files=
の下に取得しています削除する方法
内のディレクトリがしかし、私はエラー<p>リストの後に一致するファイルとディレクトリの両方を削除する必要があります。 rmfとrm -rfの代わりに?</p> <p>これを達成する方法は?</p>
find: `magsubmit_*': No such file or directory
matching_files=
の下に取得しています削除する方法
あなたが一つずつあなたのファイルやディレクトリを処理したい場合は、あなたがバッシュ4.0以降でこれを行うことができます:
shopt -s globstar nullglob
pattern="your_pattern_goes_here"
for f in $log_dir/**/$pattern; do
# matching files
done
for d in $log_dir/**/$pattern/; do
# matching directories
done
それは、より効率的であるので、私はジョナサンのアプローチを好むだろう。
'$ line'には何がありますか?あなたは例を投稿できますか? – hansaplast
また、問題を説明するために必要でないので、 'days = ...'、 'flag = ...'、 'now = ...'行を削除してください。 – hansaplast
私の見解では、あなたの 'matching_files = $(find" $ log_dir/"$ pattern")マテリアルを次のものに置き換えることがよくあります: 'find" $ log_dir/"$ pattern -exec bash script.sh {} +' 'スクリプト.sh'はシェルスクリプトであり、この単一のコマンドの目的のために作成されたもので、fの$ matching_filesの 'の中のコードを含みます。 do ... done'コマンドを実行し、与えられた引数を処理します( '' for f "$ @" ')。このメカニズムは、ファイル名に奇妙な文字(空白、改行など)を処理します。誰もがこれに同意するわけではありません。多くの場合、1行で行う必要があるようです。 –