90日を過ぎた特定のディレクトリのファイルを削除するスクリプトが欲しいです。図に示すように、異なるパスを持つ8つのディレクトリがあります。
次のディレクトリから find コマンドを実行できます。
find /directory1/dir2/dir3/dir4/ -mtime +90 | wc -l
このコマンドは 6401 と同様の結果を提供します。
しかし、見なければならない8つのディレクトリがあります。ディレクトリリストを変数に設定するにはどうすればよいですか?私は持っています:
variable
DIRLIST=/directory1/dir2/dir3/dir4/ /directory1/dir2/dir3/dir5/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir7/
command
find $DIRLIST | wc -l
出力は次のとおりです。
nameofscript.sh[2]: /directory1/dir2/dir3/dir5/: 0403-006 実行権限が拒否されました。
findコマンドでディレクトリだけを呼び出すとコマンドが機能するため、これが実際に権限の問題ではないことがわかるので、これは奇妙です。
どんな助けでも大変感謝します。
答え1
$DIRLISTを誤って宣言しました。
配列変数を宣言する方法です。
DIRLIST=(/directory1/dir2/dir3/dir4/ /directory1/dir2/dir3/dir5/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir7/)
次に find コマンドを実行します。
find "${DIRLIST[*]}" | wc -l