Unixでファイルを検索すると、./filenameとfilenameが表示されるのはなぜですか?

Unixでファイルを検索すると、./filenameとfilenameが表示されるのはなぜですか?

参考として、次のコマンドを確認してください。

Rinku@Akash ~/test
$ find . -type f -name "autosys*"
./autosys1.txt
./autosys2.txt

見つかったファイル名にソースパスを追加したくありません。

答え1

findソースパスが前に付いたすべての一致するファイルを出力します。比較:

 find $PWD -type f -name "autosys*"

答え2

findエントリポイントが.実際にはあなたのものだからですpwd。たとえば、エントリポイントは次のようにパスの/前に追加されますpwd

$ find / -type f -name "autosys*"
/path/from/root/to/$HOME/to/pwd/autosys1.txt

答え3

ファイル名を渡してパスの先頭を削除できますsed

find . -type f -name "autosys*" | sed 's!^\./!!'

改行を含むファイルの場合、これは失敗します。これが問題の場合は、代替ソリューションを検討する必要があります。ただし、./これはパス名の有効な部分であり、目的がないため、それらを削除しても技術的には利点がありません。 (しかし、見るには良く見えます。)

関連情報