答え1
ディレクトリを探したいのですが、通常のファイル(f
)を探しています。d
ディレクトリ検索の場合:
sudo find /home/lanein1/AshtonRPOUT/ -type d -mtime +30 -exec mv '{}' /home/lanein1/AshtonRPOUT/Arch/ \;
答え2
過去30日間に変更されたすべてのディレクトリを移動し、/home/lanein1/AshtonRPOUT/
最上位ディレクトリ(/home/lanein1/AshtonRPOUT/
)を変更したくない場合は、次のようにします。
find /home/lanein1/AshtonRPOUT/ -mindepth 1 -maxdepth 1 -type d \
! -path '/home/lanein1/AshtonRPOUT/Arch*' -mtime +30 \
-exec mv {} /home/lanein1/AshtonRPOUT/Arch/ ';' -prune
ここで注意すべき点:
ファイルではなくディレクトリを探しているので
-type d
。ターゲットディレクトリは検索されたディレクトリセットに含まれているため、パスを回避するために
find
使用します。! -path '...'
最上位ディレクトリを移動したくないので、
-mindepth 1
start findを追加します。下にその道。また、サブフォルダに入らないように-maxdepth 1
強制してくださいfind
(サブフォルダがあり、ここにはファイルのみが含まれていると言われました)。(ここでは使用するので必要ありませ
-maxdepth 1
んが…)ディレクトリを移動すると、ディレクトリ構造が変更されます。だから-prune
最後に追加します。これにより、考慮されるディレクトリのリストから移動されたパスが削除されますfind
。これがなければ、find
存在しないディレクトリに入ろうとします(ディレクトリを見つけて移動した場合)。