web-dev-qa-db-ja.com

テキストファイルからのタッチとタール

特定の数のファイルを圧縮しようとしていますが、以下のポイントでスタックしています。

   ls -lrt /lag/cnn/*/*/*/adb.tar.gz | grep -nri ABC >> sample.txt

Sample.txtで、tarする必要のあるfilesNamesを抽出するためにtouchコマンドを実行する必要があるfilesNamesを取得しました。

   touch -t '<time>' first & touch -t '<time>' last 

だから私の質問は、どうすればこのタッチをsample.txtに実装して、時間に基づいて必要なものを抽出し、それらのファイルをtarすることができますか? touchコマンドとtarコマンドをpipeを使用して上記のコマンドに追加できるかどうか、または個別に追加する必要があります。

1
Mano

findに、/lag/cnn内で、少なくとも何分も前の最大深度3までのファイルを見つけるように依頼します。次に、xargsを使用してそれらをtarに渡します(Zipするため)。

これはgnuツールで機能します:

find /lag/cnn -maxdepth 3 -newermt "2013-12-19 00:00" -o -type f -newermt "2013-12-16 00:00" -print0 | 
xargs -0 tar acf out.tar.gz

これは他のツールでも機能するはずです。

touch -d 2013-12-19 00:00 later-timestamp.temporary
touch -d 2013-12-16 00:00 earlier-timestamp.temporary
find /lag/cnn -maxdepth 3 -newermm later-timestamp.temporary  -o -type f -newermm earlier-timestamp.temporary -print0 | 
xargs -0 tar zcf out.tar.gz
2
ctrl-alt-delor