我正在执行ls-R /files/
我得到以下输出
./: nvision
./nvision: layout
./nvision/layout: abcd.txt
我正在寻找列表中的路径,例如
/nvision
/nvision/layout/
/nvision/layout/abcd.txt
我应该能够将所需的路径复制到变量
ps:我不是在搜索 nvision 我正在尝试获取文件夹下的文件夹和文件files
列表
谁能帮我
您是否尝试过使用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
你真的应该使用 find 来处理这些事情。只需使用find directory
. 如果您需要更具体的输出格式,您可以使用find
'-printf
选项。Find 是一个非常强大的工具,它还允许进行各种过滤。确保查看文档以获取更多信息:GNU FindUtils。
要将结果存储在变量中,请使用以下语句之一:
result=`find ...`
或者
result=$(find ...)
您还可以使用 find 使用find
'-exec
选项为每个匹配项直接执行命令。同样,请务必查看文档。它真的很全面。
更新(Mac / UNIX 用户 – Linux 用户不受影响)
BSDfind
需要路径。采用
find .
而不仅仅是
find
如果您需要工作目录中所有文件的列表。
答案就在这个页面上,你应该使用 find 列出所有找到的文件,你可以定义
在哪里 。是当前文件夹,否则替换 . 带有您希望搜索的路径
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