2016-05-10 10 views
0

せずにサブフォルダからファイルを削除します。ここ私はそのような構造を有する最後の3

/usr/local/a/1.txt 
/usr/local/a/2.txt 
/usr/local/a/3.txt 
/usr/local/b/4.txt 
/usr/local/b/3.txt 
/usr/local/c/1.txt 
/usr/local/c/7.txt 
/usr/local/c/6.txt 
/usr/local/c/12.txt 
... 

私はすべてのファイルを削除する*最大の変更日と最後の三つのファイルを除いてサブフォルダ内の.txt、しかしを私はコードであることを結合する必要があり、現在のディレクトリに

ls -tr *.txt | head -n-3 |xargs rm -f 

午前:

find /usr/local/**/* -type f 

maxdepthオプションを使うべきですか?助けるため

おかげで、 aola

+0

*最長の変更日*は?最後に変更されたファイル? – heemayl

+0

はい、最後に変更されたファイル – aola

+0

はこれを見て、サブディレクトリ内の特定のファイルを削除します。http://superuser.com/questions/112078/delete-matching-files-in-all-subdirectories – piyushj

答えて

1

追加maxdepthのオプションは、彼らがしている場合にのみ、ファイルを削除する-rで最も古い変更3つのファイルとxargsを無視するように、最終更新時間でファイルを並べ替え、1つのレベルのためtailを見つけるために見つかりました。

for folder in $(find /usr/local/ -type d) 
do  
    find $folder -maxdepth 1 -type f -name "*.txt" | xargs -r ls -1tr | tail -n+3 | xargs -r rm -f 
done 

前のコマンドを削除するための適切なファイルを選ぶことを確認するためにrmせずに、一度上記のコマンドを実行します。

+0

ありがとうございました!私は尾の頭instedを使用しました – aola

0

あなたはほとんど解決持って:あなただけ削除したい場合

find /usr/lib -type f | xargs ls -t | tail -n +4 | xargs rm 

:3最近変更されたものを省略する変更日とtailによってそれらをソートする、ファイルを取得するlsfindを使用します指定された深さにあるファイルには、-mindepth 4 -maxdepth 4を追加してパラメータを検索します。

+0

これは、すべての引数が1つのls -tに当てはまる場合にのみ機能します。 – visit1985

0

findの-printfオプションを使用すると、ファイル名の前に変更時刻を表示し、日付をソートして削除することができます。これは、lsの使用をまったく避けます。 xargs ls -tを使用して

find /usr/local -type f -name '*.txt' -printf '%[email protected]|%p\n' | sort -r | cut -d '|' -f 2 | head -n-3 | xargs rm -f 

他の回答は、単一ls -tコマンドに入れることができますxargsよりも多くの結果がある場合、誤った結果につながることができます。

0

が、各サブフォルダについて、私は

/usr/local/a/1.txt 
/usr/local/a/2.txt 
/usr/local/a/3.txt 
/usr/local/a/4.txt 
/usr/local/b/4.txt 
/usr/local/b/3.txt 
/usr/local/c/1.txt 
/usr/local/c/7.txt 
/usr/local/c/6.txt 
/usr/local/c/12.txt 

を持っているときに、私は、各サブフォルダのためのコードを使用したい別途

head -n-3 |xargs rm -f 

私はそれがその後、日付順にソートしている場合ので、私は賭け削除するファイル:

/usr/local/a/4.txt 
/usr/local/c/12.txt 

私は任意のサブフォルダに最新の3つのファイルを残したい

+0

私の更新された答えをチェックして、 '/ usr/local'内のすべてのサブフォルダをループしてファイルを削除してください – Inian

関連する問題