フォルダ内にたまってる古いフォルダやファイルを削除したくて、四苦八苦して
おります。tmpreaperを使えば良さそうなところまではわかったのですが、いま
いち使い方が良くわかりません。
http://rdt17.blogspot.com/2009/12/tmptmpreaper.html
上記が見つけた中で一番詳しいページなのですが、もうちょっと資料とかってご
存じないでしょうか。
こちらとしては、あるフォルダの中はは一日前のファイルとフォルダを削除、あ
るフォルダの中は一週間前のファイルとフォルダを削除、といった細かい制御を
したいなと思っています。
--
朧月
mailto:ob...@ebetsu.arrow.jp
また find コマンドも便利かな?
hiroshi morimoto wrote (2010/10/26 21:10):
> 森本です。
> tmpreaperは使ったことはないですが、
> /usr/share/doc/ 以下にそれに関するファイルがあります。
了解です。とりあえず、特定のフォルダの1日前のデータを消すことには成功し
ました。
> また find コマンドも便利かな?
findって、検索用のコマンドですよね?
--
朧月
mailto:ob...@ebetsu.arrow.jp
> findって、検索用のコマンドですよね?
毎度毎度思うんですが何でman findぐらいしてみないんですか?
http://www.k4.dion.ne.jp/~mms/unix/linux_com/find.html
上のページに私がやりたいことがモロに出ていますね。
findでファイル操作っていうのは、意外で想像できませんでした。
--
朧月
mailto:ob...@ebetsu.arrow.jp
findは検索だけで、あとの処理は他のコマンドにおまかせする、なんて
こともできます。findはxargsとペアで使われることが多いので、
覚えておくとよいかも。
$ find . -name '*.avi' | xargs file
UNIX系OSのコマンドライン操作では、組み合わせて使うということが
重要です。
--
喜瀬“冬猫”浩
At Thu, 28 Oct 2010 00:00:53 +0900,
KISE Hiroshi wrote:
> > findでファイル操作っていうのは、意外で想像できませんでした。
>
> findは検索だけで、あとの処理は他のコマンドにおまかせする、なんて
> こともできます。findはxargsとペアで使われることが多いので、
> 覚えておくとよいかも。
>
> $ find . -name '*.avi' | xargs file
安全のため、find には -print0 を、xargs には -0r
(--null --no-run-if-empty) オプションを利用することを推奨します。
$ find . -name '*.avi' -print0 |xargs -0r file
安全でない例1:
$ find . -name '存在しないファイル名パターン' |xargs file
Usage: file [-bchikLNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
[-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
この場合、以下なら file が引数なしで実行されない:
$ find . -name '存在しないファイル名パターン' |xargs -r file
安全でない例2:
準備と確認:
$ mkdir find-xargs-demo-2
$ cd find-xargs-demo-2
$ touch foo 'bar baz'
$ mkdir -p 'trap /etc/passwd'
$ find . -ls
5915152 4 drwxrwsr-x 3 fumiyas fumiyas 4096 10月 28 00:16 .
5915160 0 -rw-rw-r-- 1 fumiyas fumiyas 0 10月 28 00:15 ./bar\ baz
5915155 4 drwxrwsr-x 3 fumiyas fumiyas 4096 10月 28 00:16 ./trap\
5915156 4 drwxrwsr-x 3 fumiyas fumiyas 4096 10月 28 00:16 ./trap\ /etc
5915158 4 drwxrwsr-x 2 fumiyas fumiyas 4096 10月 28 00:16 ./trap\ /etc/passwd
5915159 0 -rw-rw-r-- 1 fumiyas fumiyas 0 10月 28 00:15 ./foo
これは期待通りに動かない:
$ find . -name "*" |xargs file
.: setgid directory
./bar: ERROR: cannot open `./bar' (No such file or directory)
baz: ERROR: cannot open `baz' (No such file or directory)
./trap: ERROR: cannot open `./trap' (No such file or directory)
./trap: ERROR: cannot open `./trap' (No such file or directory)
/etc: directory
./trap: ERROR: cannot open `./trap' (No such file or directory)
/etc/passwd: ASCII text
./foo: empty
これなら大丈夫:
$ find . -name "*" -print0 |xargs -0 file
.: setgid directory
./bar baz: empty
./trap : setgid directory
./trap /etc: setgid directory
./trap /etc/passwd: setgid directory
./foo: empty
--
-- Name: SATOH Fumiyasu (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- Personal Home: http://www.SFO.jp/blog/