当我使用
find /home/user/parentdir -type d -empty -delete
Run Code Online (Sandbox Code Playgroud)
它递归地查找里面的空子文件夹/home/user/parentdir并删除它们。但是如果/home/user/parentdir也是空的,它也会删除parentdir文件夹,这对我来说是不可取的。
我想将此保留parentdir到rsync一些文件中以进行备份或云计算。处理后,我需要删除空文件夹,但parentdir每次重新创建似乎都无济于事。
有parentdir什么建议要保留吗?我想在其中创建一个.nocopy文件并将其从 中排除rsync,但看起来有点矫枉过正。有没有更优雅的方式?
如何在 bash 中找到具有特定名称的文件。我想搜索整个系统。我尝试使用 find,但这只能通过一个级别。
我正在执行以下命令(查找所有带有.ts扩展名的文件并删除它们):
find . -type f -name "*.ts" –delete
Run Code Online (Sandbox Code Playgroud)
出现错误:
find: paths must precede expression: `–delete'
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我目前正在尝试find(并复制)指定目录中与特定模式匹配的所有文件和文件夹结构,我几乎就在那里!
具体来说,我想从指定的路径递归复制所有不以“_”字符开头的文件夹。
find /source/path/with/directories -maxdepth 1 -type d ! -name _\* -exec cp -R {} /destination/path \;
Run Code Online (Sandbox Code Playgroud)
在 /source/path/with/directories/ 路径中是机器特定的目录,以 '_' 和其他开头,我只对复制其他目录感兴趣。出于某种原因,find 命令返回 /source/path/with/directories/ 目录,因此复制其内容,包括以“_”开头的目录。
任何人都知道为什么会这样?
谢谢,
帕斯卡
这个问题是关于我的开发人员笔记本电脑上的 Ubuntu 14.10。
我有一个文件夹,/tmp应用程序使用该文件夹将临时内容放入其中。此应用程序通常在我的 homedir 中创建一个临时文件夹,然后将其删除。由于某种原因,当 homedir 被加密时这不起作用。因此,我/tmp/foo在 homedir 中创建了一个符号链接。我的应用程序可以在那里写入并使其成为临时子文件夹。
现在/tmp/foo每次我重新启动机器时都会被删除。到目前为止,我只是在重新启动后手动重新创建了该文件夹。现在我在/tmp 目录如何清理?有工作要做。
我已经看过了,/etc/init/mounted-tmp.conf但是我的 bashfu,尤其是我的 findfu 不足以做我想做的事。这是该文件的摘录:
Run Code Online (Sandbox Code Playgroud)EXCEPT='! -name . ! ( -path ./lost+found -uid 0 ) ! ( -path ./quota.user -uid 0 ) ! ( -path ./aquota.user -uid 0 ) ! ( -path ./quota.group -uid 0 ) ! ( -path ./aquota.group -uid 0 ) ! ( -path ./.journal -uid 0 ) ! ( -path ./.clean -uid 0 ) ! ( …
我使用以下命令来检查此答案给出的 python 版本。除了一个错误外,它确实有效,如下所示。任何人都可以解释为什么?
$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; \
| awk -F: '/x-executable; charset=binary/ {print $1}' \
| xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'
Run Code Online (Sandbox Code Playgroud)
错误:
find: ‘/run/user/1000/gvfs’: Permission denied
Run Code Online (Sandbox Code Playgroud) 我想将所有意外放入 flac 文件夹中的 mp3 提取到它们的父文件夹中。
文件夹的深度无关紧要,我只想将匹配的文件向上移动一个目录。
以下是我选择文件的方式:
find . -path "*/flac/*" -name '*.mp3'
Run Code Online (Sandbox Code Playgroud)
这适用于我的音乐文件夹,但我被困在这里。我找到的所有解决方案,要么将文件移动到当前文件夹的父文件夹,要么需要一些固定结构。
我只想知道如何使用终端在文件夹中找到根本没有组用户权限(没有读/写/执行)的文件。
为什么 xargs 不能删除名称中带有空格的目录,以及如何解决这个问题?
76 find . -type d |xargs rm -rf
77 rm -rf fire\ hydrant/
78 rm -rf wine\ glass/
79 rm -rf tennis\ racket/
80 rm -rf traffic\ light/
81 rm -rf parking\ meter/
82 rm -rf teddy\ bear/
83 rm -rf sports\ ball/
84 rm -rf cell\ phone/
85 rm -rf stop\ sign/
86 rm -rf dining\ table/
87 rm -rf potted\ plant/
Run Code Online (Sandbox Code Playgroud) 我尝试使用 Unity Lens File 搜索*.*并按 Last Modified=All、Type=Videos 和 Size=All进行过滤,但没有找到任何东西,尽管我知道我的图片文件夹中有一些 .3gp 文件。我知道我在文件系统上安装的另一个驱动器上也有许多视频文件。我编译了一个可能的扩展列表,我尝试了多次find命令迭代,使用这些命令 find ./ -name "*.ext" -o (etc, etc, ad nauseum) 没有任何运气。解决办法是什么?
find ×10
command-line ×5
bash ×4
directory ×2
files ×2
permissions ×2
14.10 ×1
delete ×1
file-format ×1
groups ×1
mv ×1
rsync ×1
video ×1
xargs ×1