1. ホーム
  2. shell

[解決済み] ディレクトリパス全体を表示せず、ファイル名のみを表示する場合

2023-06-11 14:42:23

質問

ls /home/user/new/*.txt は、そのディレクトリ内のすべてのtxtファイルを表示します。ただし、以下のように出力されます。

[me@comp]$ ls /home/user/new/*.txt
/home/user/new/file1.txt    /home/user/new/file2.txt    /home/user/new/file3.txt

といった具合になります。

を実行したい。 ls コマンドではなく /home/user/new/ ディレクトリからではないので、完全なディレクトリ名を与えなければなりませんが、出力は以下のようにしたいです。

[me@comp]$ ls /home/user/new/*.txt
file1.txt    file2.txt    file3.txt 

パス全体は必要ありません。ファイル名だけが必要です。この問題は、lsコマンドの出力が別のプログラムのためのものであるため、lsコマンドを使用して解決する必要があります。

どのように解決するのですか?

ls whateveryouwant | xargs -n 1 basename

これでうまくいくのか?

それ以外の場合は (cd /the/directory && ls) (そう、括弧は意図的なものです)