web-dev-qa-db-ja.com

bashスクリプトを使用してフォルダー内のファイルを一覧表示する方法

私はbashスクリプトを使い始めたばかりで、bashスクリプトを使用して特定の拡張子を持つすべてのファイルを一覧表示できる単純なスクリプトを作成しようとしていました。私は主にPythonまたはMatlabでコーディングするので、フォルダーのアドレスを設定し、cd関数を使用してそのフォルダーへのパスを変更し、そのフォルダー内のファイルのリストを取得することに慣れています。私はbashでそれをやろうとしていましたが、私は間違っていません。たとえば、次のアドレス"/home/user012/Desktop/folder2Start"を持つフォルダ内のすべてのサブフォルダを一覧表示しようとしています

これまでのところ、私は試しました

cd "/home/user012/Desktop/folder2Start"

ターミナルから実行した場合、あまり効果がありません。

どのように私はそれにcdしてそのフォルダをリストしますか?

どんな助けでも大歓迎です。

1
sanster9292

あなたは次のようなものを使うべきです:

ls -l -d /home/user012/Desktop/folder2Start/*/
  • */ディレクトリを検索します
  • -dは、それらのディレクトリの内容を印刷しないと言います。
2
Ravexina

これは、シェルグロビング(パス名展開)の一般的な使用例です。

/home/user012/Desktop/folder2Start/*/

ここで私は*/を使用しました。これは*の下の任意のファイル(/home/user012/Desktop/folder2Start/)に一致します。これはディレクトリ(末尾/)です。

これらを後で操作したい場合は、拡張の結果を配列に入れてください(Python listと同様に機能し、どちらも0インデックス付き):

directories=( /home/user012/Desktop/folder2Start/*/ )

次に、通常の配列操作演算子を使用して配列とその要素を参照できます。

OTOH、リストが必要な場合は、echo/printf/lsを使用してください。

printf '%s\n' /home/user012/Desktop/folder2Start/*/
echo /home/user012/Desktop/folder2Start/*/
ls -ld /home/user012/Desktop/folder2Start/*/

改行が埋め込まれたディレクトリ名の場合は、名前の終了マーカーとして/の末尾を探します。

2
heemayl

Uは次のコマンドを実行して、「folder2Start」ファイルをリストできます。

ls -la /home/user012/Desktop/folder2Start

遅すぎるかもしれませんが、質問はまだアクティブです。

0
Kaylee