find コマンドは、現在の作業ディレクトリを最初の出力として返します。

find コマンドは、現在の作業ディレクトリを最初の出力として返します。

findファイル名は同じですが、内容が異なる複数のディレクトリで作業しています。次に、数値ファイル名を含むディレクトリにコピーします。

私が直面している問題は、findコマンドがコマンドとは異なる順序でフォルダを読み取ることですls。新しいファイルを元のディレクトリに関連付けるのが難しくなります。

find私の解決策は、元のディレクトリで同じコマンドを実行して同じ順序で番号を付けることです。

#!/bin/sh

find . -maxdepth 1 -type d | sed 's#./##' > rename.list
j=1
while read -r line
do
    mv ./"$line" ./"$j"_"$line"
    j=$(( $j + 1))
done < rename.list

これにより問題はほとんど解決されますが、find何らかの理由でコマンドは現在の作業ディレクトリを最初の出力として一覧表示し、番号付けを1ずつオフセットします。

$ find . -maxdepth 1 -type d | sed 's#./##'
.
dir2
dir1
dir3

しかし、私が最初に実行したコマンドfindでは同じ問題は発生しませんでした。

find . -wholename "*__substg1.0_007D001E*" -wholename "*attach_version*" -type d > header_files.txt

ベストアンサー1

出力から現在のディレクトリを除外するには、オプションをieに設定します-mindepth()。1-mindepth 1.find

find . -maxdepth 1 -mindepth 1 -type d

おすすめ記事