相关疑难解决方法(0)

如何遍历find返回的文件名?

x=$(find . -name "*.txt")
echo $x
Run Code Online (Sandbox Code Playgroud)

如果我在Bash shell中运行上面的代码,我得到的是一个包含多个文件名的字符串,用空格分隔,而不是列表.

当然,我可以进一步将它们分开来获取列表,但我确信有更好的方法可以做到这一点.

那么循环find执行命令结果的最佳方法是什么?

bash find

189
推荐指数
8
解决办法
19万
查看次数

LINUX递归列出目录中的所有文件,包括符号链接目录中的文件

假设我有一个目录/dir中,其中有3个符号连接其他目录 /dir/dir11,/dir/dir12/dir/dir13.我想列出dir包含其中的所有文件dir11,dir12dir13.

为了更通用,我想列出所有文件,包括目录中符号链接的文件.find .,ls -R等,停止在符号链接,而不导航进入它们进一步列出.

linux

133
推荐指数
6
解决办法
40万
查看次数

批处理文件:列出具有相对路径的目录中的所有文件

关于Windows批处理文件:有没有办法来列出某个目录下的所有文件(或所有特定类型的)及其子目录,包括相对于当前(或搜索)列表目录的路径?

例如,如果我想要当前目录和子目录中的所有.txt文件及其完整路径,我可以这样做

for /r . %%g in (*.txt) do echo %%g >> C:\temp\test.txt
Run Code Online (Sandbox Code Playgroud)

要么

dir *.txt /b /s >> C:\temp\test.txt
Run Code Online (Sandbox Code Playgroud)

我会得到类似的东西

C:\test\Doc1.txt
C:\test\subdir\Doc2.txt
C:\test\subdir\Doc3.txt
Run Code Online (Sandbox Code Playgroud)

如果我做

for /r . %%g in (*.txt) do echo %%~nxg >> C:\temp\test.txt
Run Code Online (Sandbox Code Playgroud)

我会得到类似的东西

Doc1.txt
Doc2.txt
Doc3.txt
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是:

Doc1.txt
subdir\Doc2.txt
subdir\Doc3.txt
Run Code Online (Sandbox Code Playgroud)

可能吗?

如果我的帖子太混乱了:我基本上希望Linux CLI中的List文件具有相对于当前目录的路径,但仅适用于Windows.

windows cmd batch-file

60
推荐指数
4
解决办法
21万
查看次数

如何递归列出所有文件和目录

在Free BSD上使用tcsh shell,有没有办法递归列出所有文件和目录,包括文件的所有者,组和相对路径?

ls -alR接近,但它没有显示每个文件前面的相对路径,它显示了分组顶部的路径,即

owner% ls -alR
total 0
drwxr-xr-x   3 owner  group  102 Feb  1 10:50 .
drwx------+ 27 owner  group  918 Feb  1 10:49 ..
drwxr-xr-x   5 owner  group  170 Feb  1 10:50 subfolder

./subfolder:
total 16
drwxr-xr-x  5 owner  group   170 Feb  1 10:50 .
drwxr-xr-x  3 owner  group   102 Feb  1 10:50 ..
-rw-r--r--  1 owner  group     0 Feb  1 10:50 file1
-rw-r--r--  1 owner  group     0 Feb  1 10:50 file2
Run Code Online (Sandbox Code Playgroud)

我想要的输出如下:

owner group ./relative/path/to/file …
Run Code Online (Sandbox Code Playgroud)

linux shell

28
推荐指数
5
解决办法
6万
查看次数

标签 统计

linux ×2

bash ×1

batch-file ×1

cmd ×1

find ×1

shell ×1

windows ×1