親ディレクトリの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. 2つ以外のディレクトリ内のすべてのファイルを削除する
- 2. 最新のディレクトリ以外の古いファイルを削除するためのスクリプトN
- 3. 最近のもの以外のフォルダ内のすべてを削除するperl
- 4. 文の最初の単語以外のすべてを削除します
- 5. フォームコントロール以外のすべての図形を削除する
- 6. 上位10行以外のすべてを削除する
- 7. 数値以外のすべてを削除するPHPコード
- 8. 最大値を持つ行以外のすべての行を削除します
- 9. 空白以外のすべての数字以外の文字を削除してください
- 10. 301すべてのページを新しいサイトにリダイレクトする1ディレクトリ以外
- 11. 1つ以外のすべてのディレクトリのリストを取得するには?
- 12. 削除最初の20行以外のすべての行をPHPを使用して
- 13. 現在のLI以外のすべてのulを削除します
- 14. SQL Server 2008以外のすべてのシステムオブジェクトを削除するスクリプト
- 15. Javascript regex - セミコロン以外のすべての特殊文字を削除します
- 16. 'index.php'以外のディレクトリからすべてのPHPファイルをインクルード
- 17. Zsh:最高位の辞書順ソート順以外のすべてのファイルを削除する
- 18. 最初のオカレンス以外のすべての行エントリがゼロである列を削除する
- 19. Coldfusion - 数値以外の値をすべてリストから削除しますか?
- 20. のmaven-戦争 - プラグイン:すべてのディレクトリを除外するが、1つの
- 21. Golangはディレクトリのすべてのコンテンツを削除します
- 22. 前のすべてのコミットからディレクトリを削除します
- 23. すべてのディレクトリのアクセス許可を削除する
- 24. その中のすべてのファイルとディレクトリを削除
- 25. すべてのディレクトリで.svnファイルを削除する
- 26. /ディレクトリから始まるすべてのディレクトリ/サブディレクトリ内に新しく作成、変更、削除されたすべてのファイルを見つけるPythonコード
- 27. すべてのデータを削除せずに最後の2つのコミットを削除する
- 28. SVN私の枝以外のすべてを更新します
- 29. テンプレート以外の過負荷を削除するよりも、テンプレートインスタンシエーションを削除するのはいつですか?
- 30. MYSQLデータベース内のすべての外部キーを削除する
ファイルやディレクトリの作成時刻は、どこにも保存されていないため、取得することはできません。最も近いのはinode変更時間です:http://www.faqs.org/faqs/unix-faq/faq/part3/section-1.htmlディレクトリにファイルを追加または削除すると、inodeが変更されます。 –
...子ディレクトリからファイルを追加または削除すると、親のinodeは変更されません。 –