我正在寻找一个用于 Windows 的命令行工具,它将遍历目录树(递归)并输出其中所有文件的列表,以及每个文件的校验和(可以是 CRC、MD5 等)。
本质上,我想要的是比较 2 台机器中的 2 个大目录树。我计划在两者中获取运行此工具的输出,并对它们进行区分以确保它们相同。
我很欣赏任何想法。
我需要一些有关 XUL 的文档,但我大部分时间都无法访问 Internet。因此,我尝试使用以下命令下载Mozilla 教程:
wget --no-parent -r -l 2 -p -k https://developer.mozilla.org/en/XUL_Tutorial
Run Code Online (Sandbox Code Playgroud)
我的目的是下载https://developer.mozilla.org/en/XUL_Tutorial页面及其子页面(例如,https://developer.mozilla.org/en/XUL_Tutorial/Install_Scripts)。但是,即使我通过了--no-parent标志,它也会不断获取诸如https://developer.mozilla.org/index.php?title=Special:Userlogin&returntotitle=en%2FXUL+Tutorial%2FInstall+Scripts.
我不明白为什么会这样。我怎样才能实现我想要的行为?
我在 OS X 中创建了一个新帐户并处理了我的旧帐户。
我有一堆文件现在拥有所有者 501,需要将所有权更改为我
[/usr/local]$ ll
total 24
drwxrwxr-x 18 root admin 612B Oct 20 11:01 ./
drwxr-xr-x@ 14 root wheel 476B Oct 19 10:43 ../
-rw-r--r-- 1 501 admin 116B Oct 19 10:01 .gitignore
drwxr-xr-x 13 501 admin 442B Oct 19 12:35 Cellar/
drwxr-xr-x 7 501 admin 238B Oct 19 12:17 Library/
-rw-r--r-- 1 501 admin 679B Oct 19 10:01 README.md
drwxr-xr-x 42 501 admin 1.4K Oct 20 11:12 bin/
drwxr-xr-x 2 501 admin 68B Oct 20 …Run Code Online (Sandbox Code Playgroud) 如果我使用命令
wget --no-remove-listing -P ...../debugdir/gnu/<dir>/ ftp:<ftp-site>/gnu/<dir>/
Run Code Online (Sandbox Code Playgroud)
我会得到.listing那个目录的文件。但是我必须遍历每个后续子目录才能获得整个结构。有没有办法.listing用一个命令从所有(子)目录中获取文件?
另外,我注意到index.html每次访问后都会自动生成该文件。有没有办法抑制这种行为?
问题是我总是发现 Bash 处理速度很慢,但经过一些分析后,我发现最大的延迟是.listing从后续子目录中获取每个文件。
示例:检查 GNU 树中的特定文件扩展名大约需要 320 秒,其中 290 秒用于处理上述wget命令。
在 Windows 中,是否有本机|便携式工具可以递归地为我提供一个路径下所有文件和目录的unicode或系统本地兼容列表,而无需递归到连接点或链接中?
例如,内置dir takedown icacls命令与Application Data目录 ( 1 )一起运行到无限循环中。
编辑我希望能够获得一个文本文件或至少一个简单的剪贴板传输作为输出。
如果可能的话,我想避免使用批处理文件。
基于对有关递归重命名或移动的问题的回答,我想出了以下命令(用于将所有名为 web.foo.config 的文件复制到同一目录中的web.config ):
for /r %x in (*web.foo.config) do copy /y "%x" web.config
Run Code Online (Sandbox Code Playgroud)
但是,这只会导致 web.foo.config 的每个实例创建并覆盖 .\web.config,而不是找到的路径中的 web.config。所以我尝试:
for /r %x in (*web.foo.config) do (SET y=%x:foo.config=config% && CALL copy /y "%x" "%y")
Run Code Online (Sandbox Code Playgroud)
这会产生将文件复制到名为“%y”的文件的不幸效果。有没有一种方法可以%y在设置后强制进行评估...或者完全是更好的方法?
如何递归生成一个文本文件,其中包含我服务器上所有文件的列表,其中包含文件中任何位置的特定字符串?
我知道以下命令可用于递归替换字符串
find /var/www -type f -print0 | xargs -0 sed -i 's/old string/new string/g'
Run Code Online (Sandbox Code Playgroud)
我不想替换字符串,我只想要包含该字符串的所有文件的列表。
tl; dr:`wget --no-parrent -r ' 会从给定 url 目录上方的目录下载吗?
当使用 wget 下载图像时,例如使用 -r 和 -np 选项递归地从 example.com/a/b 下载图片时,example.com/a/ 下的图片是否会在 example.com/a/c/ 下下载b/ 提供一个包含图片链接的 html 文件?如果是这样,我如何获取文件夹中的所有图片及其子文件夹,只有那些?选项的描述 --no-parent 说“递归检索时不要上升到父目录”。无论如何,目录浏览都会提供一个指向父目录的链接,尽管提到了选项,wget 仍将遵循该链接。现在我错过了什么?
编辑:使用 GNU Wget 1.12
我希望能够运行一个脚本来删除我所有的空目录。问题是其中一些是嵌套的,即其中只有空目录的目录,因此脚本需要递归。
我知道这个:
find /media/server/data001/Unprotected/Downloads/ -type d -empty -exec rmdir {} \;
Run Code Online (Sandbox Code Playgroud)
但我不知道如何让它一次又一次地运行,直到处理完所有嵌套目录然后停止。
如何找到一个文件夹的所有子文件夹并分别压缩它们?
文件夹结构
./folder
-subfolder_1
-subfolder_2
-subfolder_3
Run Code Online (Sandbox Code Playgroud)
预期结果:
./folder
-subfolder_1.zip
-subfolder_2.zip
-subfolder_3.zip
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下方法:
for i in .; do zip -r $i.zip $i; done;
Run Code Online (Sandbox Code Playgroud)
生成一个包含所有子文件夹的..zip文件
这是一个目录中 tree 命令的输出:
.
|-- asdf.txt
|-- asd.txt
|-- fabc
| |-- fbca
| `-- file1.txt
|-- fldr1
|-- fldr2
| `-- index.html
|-- fldr3
| |-- cap.txt
| `-- f01
`-- out.txt
6 directories, 6 files
Run Code Online (Sandbox Code Playgroud)
我在这个目录中启动了一个本地 http 服务器。接下来我运行以下命令:
wget -r -nv --spider --no-parent http://localhost:3000 -o -
Run Code Online (Sandbox Code Playgroud)
...并获得以下输出:
2017-01-02 20:07:24 URL:http://localhost:3000/ [1580] -> "localhost:3000/index.html" [1]
http://localhost:3000/robots.txt:
2017-01-02 20:07:24 ERROR 404: Not Found.
2017-01-02 20:07:24 URL:http://localhost:3000/fabc/ [897] -> "localhost:3000/fabc/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr1/ [536] -> "localhost:3000/fldr1/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr2/ …Run Code Online (Sandbox Code Playgroud) 我有一个包含多个子目录的目录,这些子目录都包含文本文件。在这些文本文件中,有一个词反复出现,我想替换每个实例。
我的问题 - 我将如何从 linux 命令行完成此操作?我不想对每个文件进行 gedit 并进行手动搜索/替换。
(作为奖励 - 有没有办法以不区分大小写的方式做到这一点?)