すべてのサブディレクトリを削除するにはどうすればよいですか?(unixシェルスクリプト)
「cdrs-roaming」というディレクトリがあります。毎日、1つ以上の.zipファイルを受け取り、次のコマンドで解凍します。
#!/bin/bash
for i in *.zip
do
j=${i//\.zip/} mkdir $j
cd $j unzip ../$i
cd -
done
次に、たとえば「example1.zip」と「example1」があります。「example2.zip」と「example2」
これですべてのzipファイル(この場合は「example1.zip」と「example2.zip」)を削除します。
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
だから私はディレクトリ(またはフォルダ-私は本当に違いがわかりません)「example1」と「example2」を削除したいと思います。私はこれを試しました:
#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
ただし、「cdrs-roaming」も削除されます。私も使用しようとしました:
find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
しかし、それは戻ります:find: '/ cdrs-roaming /':そのようなファイルまたはディレクトリはありません
これを行うためのアイデアはありますか?「cdrs-roaming」内のディレクトリのみを削除する必要がありますが、その中の他のものを削除することはできません(私の.shファイルはその中にあります)
回答
2 user1934428
bashを使用しているので、どうですか
rm -rf /dados/cdrs-roaming/*/
最後のスラッシュは、bashがパターンをディレクトリにのみ展開することを保証します。
1 TimurShtatland
使用-mindepth 1
オプション:
find /dados/cdrs-roaming/ -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;