![ファイルとディレクトリを削除するコマンドを探す[閉じる]](https://linux33.com/image/230777/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A8%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E6%8E%A2%E3%81%99%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
次の構文を使用してフォルダを削除することはできません。助けてもらえますか?
処置:特定のパスから6時間以上経過したファイルとフォルダを削除する
find $file -name "*" -mmin +360 -exec rm -f {}\;
答え1
コマンドには2つの問題があります。
このコマンドは
rm -f dir
名前付きディレクトリを削除しませんdir
。このrmdir
コマンドを使用するか、またはを使用する必要がありますrm -r dir
。削除するには、ディレクトリが空である必要があります。ファイルが存在する場合、
dir1/file1
そのコマンドは最初にdir1
削除し、次に(失敗)削除を試みますdir1/file1
。rm -r
修正の2番目の部分は簡単です。-depth
find コマンドに、深さ優先順にファイルを処理するように指示するフラグを追加します。
修正の最初の部分はより難しく、必要な操作に依存します。
問題は、「指定されたパスから6時間以上経過したファイルとフォルダを削除する」というフレーズにあります。dir1
12時間前に作成してdir1/file1
11時間前に作成しましたが、1時間前に編集した場合はどうすればよいですか?あなたの説明が示すように、ファイルが追加されてから11時間前に最後に変更されたため、ディレクトリを削除し、1時間前に変更されたため、ファイルを削除したくありません。ただし、ファイルにはディレクトリが必要です。
私の推測では、削除したいようです。空最後に変更されてから6時間以上経過したディレクトリです。より明確にするために、ここに追加の括弧付きのコマンドがあります。これが何を-o
意味するのかを知る必要がありますor
。
find $file -depth -mmin +360 '(' '(' -type f -exec rm -f '{}' ';' ')' -o \
'(' -type d -empty -exec rmdir {} ';' ')' ')'
あなたのバージョンのfindオブジェクトが-empty
それを無視し、空でないディレクトリを削除できないというエラーメッセージを無視する場合。
答え2
探す/目次-cm分+分-削除
このオプションはどこで利用できますか?
-cmin
創造の時間-mmin
時間の変更-amin
入場時間について
状況に応じて利用可能で、正しいパスが提供されていることを確認してください/dir
。そうしないと、オペレーティングシステム全体がシャットダウンする可能性があります。