親ディレクトリの4つの最新ディレクトリ以外のすべてを削除します。あなたはこれをBashでどうやってやりますか?4つの最新ディレクトリ以外のすべてを削除
答えて
ls -atrd */ | head --lines=-4 | xargs rm -rf
編集:あなたが4つ以外のすべて(ファイルやディレクトリ)を意味し、「すべてのディレクトリが、4つのnewstものを削除」または」削除した場合は「」引数は明確にしてください
これは最近作成された4つのものの代わりに4つの最も最近変更されたディレクトリを残し、ドットで始まるディレクトリに気付かず、改行を含む名前で頭が壊れ、空白を含む名前に対してxargsが壊れ、rmはエラーメッセージを表示する削除するものがない場合 –
良い点。私はlsにドットをつけてディレクトリを取得するために 'a'を追加し、現在のディレクトリと親ディレクトリを取り除くためにgreppedしましたが、あなたは正しいです。これはあなたが指摘しているように、いくつかの重要な制限がある簡単な答えです。 –
修正:ls * /で表示されていない現在のディレクトリと親ディレクトリをフィルタリングするためにgrepは必要ありません。 –
をLSに追加最新のディレクトリ "です。
作成時間はディレクトリでは分かりません。ディレクトリが最後に変更されたとき、つまりファイルが追加、削除、または名前変更されたときだけを伝えることができます。
あなたが行うことができ、以下:
#!/bin/bash
#store the listing of current directory in var
mydir=`ls -t`
it=1
for file in $mydir
do
if [ $it -gt 5 ]
then
echo file $it will be deleted: $file
#rm -rf $file
fi
it=$((it+1))
done
は(それが本当に実現するために、RMの前に#を削除;)アレイと、それを行うには)
別、BSD-安全、道を(理由
#!/bin/bash
ARRAY=(`ls -td */`)
ELEMENTS=${#ARRAY[@]}
COUNTER=4
while [ $COUNTER -lt $ELEMENTS ]; do
echo ${ARRAY[${COUNTER}]}
let COUNTER=COUNTER+1
done
- 1. 最新の10以外のすべてのディレクトリを削除する
- 2. X最新のフォルダ以外のすべてを削除する
- 3. 2つ以外のディレクトリ内のすべてのファイルを削除する
- 4. (SQL)最新のもの以外のすべての行を削除する
- 5. 最新のディレクトリ以外の古いファイルを削除するためのスクリプトN
- 6. システムファイル以外のディレクトリ内のすべてのファイルを削除するバッチファイル
- 7. 最新のもの以外のファイルを削除する
- 8. は一つのフォルダ以外linuxディレクトリ内のすべてのフォルダとファイルを削除して、そのフォルダ
- 9. 最近のもの以外のフォルダ内のすべてを削除するperl
- 10. 文の最初の単語以外のすべてを削除します
- 11. 最初のJava POI以外のすべての行を削除します
- 12. ドロップゾーン最初のファイル以外のすべてのファイルを削除し
- 13. Python内の最新のフォルダ以外のすべてのファイルを削除します
- 14. フォームコントロール以外のすべての図形を削除する
- 15. 1以外のすべてのテーブルを削除する方法
- 16. 2つ以外のすべてのファイルを除外
- 17. Gradle fileTreeは特定のディレクトリ以外のすべてを除外します
- 18. 上位10行以外のすべてを削除する
- 19. textView以外の数値をすべて削除する
- 20. 番号以外のすべてを削除するRegex
- 21. 数値以外のすべてを削除するPHPコード
- 22. JavaScript:オブジェクトから1つのキー以外をすべて削除する
- 23. dataTables:選択入力以外のすべてを削除
- 24. 最大値を持つ行以外のすべての行を削除します
- 25. 以前のすべてのgitコミットから.ideaディレクトリを削除します
- 26. Fish Shell:すべてを削除する以外
- 27. 特定のファイル以外の古いファイルを削除します。ディレクトリが削除されています
- 28. シート上の最初と最後の4つの間のすべての列を削除する
- 29. このシェルコマンドは、最後のXディレクトリを除くすべてのディレクトリを安全に削除できますか?
- 30. 最初の行以外の行を完全に削除する
ファイルやディレクトリの作成時刻は、どこにも保存されていないため、取得することはできません。最も近いのはinode変更時間です:http://www.faqs.org/faqs/unix-faq/faq/part3/section-1.htmlディレクトリにファイルを追加または削除すると、inodeが変更されます。 –
...子ディレクトリからファイルを追加または削除すると、親のinodeは変更されません。 –