我知道 du -sh,它为我提供了用于给定目录的总磁盘空间。
我的问题是我感兴趣的目录分散在许多子目录中。我有正确的“查找”命令可以给我这些目录。目标是传递找到的目录并获取这些目录使用的总磁盘空间
如果我将这些目录作为参数传递给 du,我会得到用于该目录的总数,但没有总计。我想得到总计。
示例du -sh dir1 dir2给出如下输出
17k dir1
55K dir2
我需要做什么才能获得总计?
我试图自己解决这个问题。这是我在终端中使用的命令:
find . -name "*.jpg" -exec mv {} pictures \;
Run Code Online (Sandbox Code Playgroud)
我没有先创建一个名为图片的目录。发生的事情是创建了一个名为pictures.gif 的文件。它是否找到文件然后在移动它们时覆盖它们?
由于此命令而创建的这个pictures.gif 文件是什么?
文件是否仍然可能在驱动器上的某个地方?
操作系统:Ubuntu 19.10
当我跑的时候locate plymouth,我得到了
dkb@dkb-uee:~$ locate plymouth
Command 'locate' not found, but can be installed with:
sudo apt install mlocate
dkb@dkb-uee:~$
Run Code Online (Sandbox Code Playgroud)
所以我安装了mlocate,现在locate可以工作了。
据我所知,自 Ubuntu 11.04 以来,locate一直存在。
为什么它在 Ubuntu 19.10 中被排除在外?
我的桌面上有一个启动器,想手动添加另一个具有相同图标的启动器。
当我转到现有启动器的首选项并单击该图标时,它不会将我带到存储该图标的文件夹,而只会将我带到我的主文件夹。
如何找出启动器使用的图标在我的系统中的位置?
我想在我的 Ubuntu 服务器上使用mlocate,但只能索引某些目录(例如/home和/data,但不是 下的所有内容/)。但是,mlocate 的标准配置则相反;您指定要删除的路径(使用PRUNE_PATHS)。
有没有什么简单的方法可以实现这一点,或者任何类似的实用程序可以满足我的要求?(注意:它应该维护一个像 那样的索引mlocate,所以find是不可接受的,例如)谢谢。
我有一个没有大约 500 个子目录的文件夹。里面有很多垃圾,我想把它清理干净。
我已经使用以下命令删除了我不想要的某些文件类型,例如图像:
find . -mindepth 1 -iname "*.jpg" -type f -delete
Run Code Online (Sandbox Code Playgroud)
但是,我现在想删除所有无扩展名的文件。类似“购物清单”而不是“购物清单.txt”的文件
我尝试了以下命令,但没有奏效:
find . -mindepth 1 ! -iname "*.*" -type f -delete
Run Code Online (Sandbox Code Playgroud) 为什么在使用-execdir时使用 find的操作组合不安全-exec?
当我运行以下命令时,我收到以下提示消息:
/path/to/currentDir/$ find . -type f -name 'partOfFileNames*' -execdir rm -- {} +
find: The current directory is included in the PATH environment variable, which is insecure
in combination with the -execdir action of find. Please remove the current directory
from your $PATH (that is, remove "." or leading or trailing colons)
Run Code Online (Sandbox Code Playgroud)
出现此提示的原因可能是什么?
我一直使用locate来查找我知道名称的文件,locate非常快,我喜欢它。对于最近创建的文件find很棒,通常使用最近创建的文件我知道它们基本上是在哪里创建的,所以我不必搜索我的整个文件系统。
当我忘记了目录的位置时, find 和 locate 似乎都不理想。
Locate 总是会吐出太多信息,因为目录中的每个文件也是 locate 的匹配项。例如,如果我在我的文件系统某处搜索名为 log 的目录,则定位日志将返回大量结果。如果我对 find 做同样的事情,find / -name log -type d find 需要几分钟才能运行,并且每次遇到无法读取的文件夹时都会吐出各种权限错误。
有没有更好的办法?
回答:所以我坚持使用 grep 直到找到其他东西:
locatedir () {
for last; do true; done
if [[ $last == *\/* ]]
then
locate $@ | grep "${last}\$"
else
locate $@ | grep "/${last}\$"
fi
}
Run Code Online (Sandbox Code Playgroud) 我试图在一个文件夹中查找所有 JPG 图像,该文件夹的子文件夹的宽度或高度低于 300 像素。
这样我想检测旧缩略图并删除它们。
当然,我可以使用find以下命令找到所有图像:
find . -iname "*.jpg" -type f | ...
Run Code Online (Sandbox Code Playgroud)
但是管道之后是什么?我可以使用哪个包来检测图片属性?
这个是对的:
$ find . -name *main.o
./main.o
Run Code Online (Sandbox Code Playgroud)
那么,为什么我找不到*.o?
$ find . -name *.o
find: paths must precede expression: main.o
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Run Code Online (Sandbox Code Playgroud) find ×10
command-line ×6
locate ×2
bash ×1
disk-usage ×1
icons ×1
launcher ×1
metadata ×1
search ×1