1

私は実行していますls-R /files/

次の出力を得ました

./:    nvision
./nvision:    layout
./nvision/layout:    abcd.txt 

次のようなリストでパスを取得しようとしています

/nvision
/nvision/layout/
/nvision/layout/abcd.txt

必要なパスを変数にコピーできるはずです

ps: nvision を検索しているわけではありません。フォルダの下にあるフォルダとファイルのリストを取得しようとしていfilesます。

誰でもそれで私を助けることができます

4

3 に答える 3

4

使用してみましたかfind (参照を参照)

find .現在のディレクトリ内のファイルとフォルダーのリストを取得するのと同じくらい簡単です。を変更します。そのパス内のファイルとディレクトリのリストを取得するには、任意のパスに次のように入力します。

nvision
nvision/abcd.txt
nvision/layout

変数に保存するには

var=`find .`

そして、すべての行に最初のスラッシュを追加する (必要な場合)

var=`find . -exec echo /{} \;`

ここでvarには特別な意味はなく、単なる変数名です。

後で変数を使用するには、$varまたはを使用できます${var}。たとえば、印刷またはファイルに保存するには、次のようにします。

# Print the variable content
echo $var

# Save the content of var to a file
echo $var > /tmp/file.txt
于 2013-02-26T11:12:13.257 に答える
2

これらの種類のものには、実際に find を使用する必要があります。を使用するだけfind directoryです。より具体的な出力フォーマットが必要な場合は、find-printfオプションを利用できます。検索は、あらゆる種類のフィルタリングも可能にする非常に強力なツールです。詳細については、ドキュメントを確認してください: GNU FindUtils

結果を変数に格納するには、次のいずれかのステートメントを使用します。

result=`find ...`

また

result=$(find ...)

findfind を使用して、の-execオプションを使用して一致ごとにコマンドを直接実行することもできます。繰り返しますが、必ずドキュメントを確認してください。それは本当に包括的です。

更新 (Mac / UNIX ユーザー - Linux ユーザーは影響を受けません)

BSDfindにはパスが必要です。使用する

find .

ただの代わりに

find

作業ディレクトリ内のすべてのファイルのリストが必要な場合。

于 2013-02-26T11:17:27.070 に答える
1

答えはこのページ全体にあり、使用する必要があります

どこ 。は現在のフォルダーです。検索したいパスで

find .-type d -print 

ディレクトリのみをリストするか、検索します

また

find . -type f -print

すべてのファイルのみをリストします

あなたが両方を探しているなら

find . -print

再帰レベルのみを定義したい場合は、試してください

find . -maxdepth 1 -print

ここにスクリプトがあります

#!/bin/bash
for names in $(find . -type f -print); do
    echo $names
done
于 2013-02-26T12:05:44.803 に答える