Linux (zip):如何找到所有不可读的文件?

Mr.*_* B. 5 linux terminal zip admin server

我只是尝试通过以下命令压缩文件夹及其内容:

zip -r ./mytarget.zip ./mysource
Run Code Online (Sandbox Code Playgroud)

最后我收到警告

zip warning: Not all files were readable
files/entries read:  141595 (4.2G bytes)  skipped:  57 (1.8M bytes)
Run Code Online (Sandbox Code Playgroud)

我想知道跳过了哪些文件

如何找到所有不可读的文件?我没有sudo那个服务器的权限。

提前致谢!

Pic*_*ent 8

您可以使用

find . ! -readable
Run Code Online (Sandbox Code Playgroud)

递归扫描不可读的文件或目录。此命令会考虑权限,但也会考虑断开的链接。

  • 谢谢,但是没有显示任何文件。这些文件可能被其他东西阻止了,因为几次尝试后压缩就成功了。 (2认同)

Hub*_*0xx 8

我和你经历一样,find . ! -readable没有帮助。

我通过将 zip 命令的所有输出记录到文件中解决了这个问题:

 zip -r my-archive.zip /path/to/dir/ &>> zip-log
Run Code Online (Sandbox Code Playgroud)

然后在其中搜索该warning单词,该单词不仅作为摘要出现在命令输出的末尾,而且还出现在每个导致问题的文件之后(在我的例子中为 2):

  adding: home/myuser/.cagefs/tmp/mysql.sock
    zip warning: could not open for reading: home/myuser/.cagefs/tmp/mysql.sock
  adding: home/myuser/.cagefs/tmp/lshttpd/ (stored 0%)
  adding: home/myuser/.cagefs/tmp/.s.PGSQL.5432
    zip warning: could not open for reading: home/myuser/.cagefs/tmp/.s.PGSQL.5432
Run Code Online (Sandbox Code Playgroud)