6 篇文章带有标签 “find”

macOS 下的 __MACOSX 目录和 .DS_Store 文件

.DS_Store 是 macOS 操作系统中隐藏的文件,它存储有关文件夹的元数据,例如文件夹中的文件位置、文件夹的显示选项和自定义图标等信息。这些元数据是用来帮助操作系统更快地显示文件夹中的内容,并记住用户的偏好设置。这些文件只是本地的,不会在网络文件共享时传输,因此不会影响其他操作系统用户。

当你在 Mac 电脑上创建一个压缩文件时,系统会自动在压缩文件中添加一个名为 __MACOSX 的目录。该目录包含了 Mac 操作系统专有的一些文件,如 .DS_Store 等。这些文件不会对压缩文件的解压缩造成影响,但它们可能会在其他操作系统上解压缩时出现问题,例如在 Windows 上解压缩时可能会显示 __MACOSX 目录或 .DS_Store 文件。为了避免这种情况,你可以在创建压缩文件时选择不包含 Mac 专有文件,或者在解压缩时手动删除 __MACOSX 目录和 .DS_Store 文件。

find 命令中,-exec 参数用于执行一个命令来处理查找到的文件或目录。\;-exec 参数的终止符号,用于告诉 find 命令,在执行完 -exec 参数指定的命令后,结束这个 -exec 参数的执行。

因为在 shell 中,; 会被解释为命令的结束,所以需要在 ; 前面加上 \,用于转义这个字符,以确保 find 命令能够正确的处理 -exec 参数。

命令find

  • 以详细信息显示 /var/log 目录下最近 24小时内修改的文件
$ find /var/log -mtime 0 -ls
 33575669      4 drwxr-xr-x  15  root     root         4096 7月 29 06:33 /var/log
 34131780    164 -rw-------   1  root     root       166061 7月 29 10:20 /var/log/messages
  • 显示 /var/log 目录下最近 [0 - 24小时] 修改的文件
find /var/log -mtime -1
  • 显示 /var/log 目录下最近 [24 - 48小时] 修改的文件
find /var/log -mtime 1
  • 显示 /var/log 目录下最近 [48 - ] 修改的文件
find /var/log -mtime +1
  • 以详细信息显示当前目录下超过 40M的文件
$ find . -size +40M -ls
 17180574  42480 -rwxr-xr-x   1  root     root      43499520 3月 11  2020 ./kubectl
  • 显示当前目录下超过 40M的文件,通过 ls 命令来显示结果。
$ find . -size +40M -exec ls -lh {} \;
-rwxr-xr-x 1 root root 42M 3月  11 2020 ./kubectl

命令grep

  • 忽略字母大小写(-i)
grep -i 'text' hello.txt
  • 搜索多个文件
grep 'text' hello.txt hi.txt
  • 搜索当前目录下所有文件
grep 'text' *
  • 搜索当前目录(包含子目录 -R)下所有文件
grep -R 'text' *
  • 搜索 pip 配置文件的路径(增加过滤)
find ~ -name pip* | xargs -i grep "index-url" {} --color -nH
/home/lnsoft/.config/pip/pip.conf:2:index-url = https://mirrors.aliyun.com/pypi/simple/
  • 只匹配字符串,不使用正则表达式。
find . | grep -F .run
  • 显示当前目录下的文件
ll | grep '^-'
  • 显示当前目录下的所有目录及子目录(遍历)
ll -R | grep '^d'
  • 统计目录数
ll | grep '^d' | wc -l

图像格式转换、尺寸调整

  • macOS
brew install imagemagick
  • 按照指定高等比调整
convert test.jpg -resize x640 test.jpg
  • 按照指定宽高等比调整
convert test.jpg -resize 640x640 test.jpg
  • 按照指定宽高调整
convert test.jpg -resize 640x640! test.jpg
  • 方法2
find . -name '*.png' -exec convert {} -resize 640x640 {} \;