linuxでの話です。
/home/[0-9]/[0-9]/[0-9]/[0-9]/[0-9]/DIR/FILE.txt
上記のようなパスにファイルがあったとします。
数字の部分は飛び飛びになっていて、全て存在する訳ではないです。
数字のディレクトリには数字以外のディレクトリはありません。
※実際には一桁ではなく、複数桁です。
全ての領域にFILE.txtが存在するとも限りませんが、DIRは同じ名前で確実に存在します。
抽出するのはこの階層のFILE.txtのパスだけでOKです。
この階層以下には数字名ではないディレクトリがあり、そっちを見始めると非常に時間がかかります。
こんな中で、指定の階層のFILE.txtだけ抽出するのに、早い方法はありますか?
一番簡単なのは下記みたいなfindだと思います。
①$ ls -l /home/[0-9]/[0-9]/[0-9]/[0-9]/[0-9]/DIR/FILE.txt ②$ find /home/ -name FILE.txt -type f -maxdepth 7 ③$ find /home/[0-9]/[0-9]/[0-9]/ -name FILE.txt -type f -maxdepth 4
①はbashの展開の限界を超える為無理、②は無難だけど面白くない、③は折衷案だけど対して変わらない
現状、非常に時間がかかるので、後学のためも込みで何かもっと良い方法があるんじゃないかと思い質問しています。
全部同じ階層にあるのに、時間がかかるのも何か違うような気がしまして。
以上、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/11 11:43