1. 程式人生 > 實用技巧 >Linux檔案查詢神器命令 find: 查詢大於或者小於某大小的檔案

Linux檔案查詢神器命令 find: 查詢大於或者小於某大小的檔案

Linux, 剛好有個需求,就是查詢少於1K的檔案,然後對這些檔案進行刪除操作.

命令如下:

find . -type f -name "*.log" -size -1k | xargs rm -rf

受人魚不如授人魚.文件如下:

Find Files Bigger Or Smaller Than X Size

Using find command, we can also easily find files bigger or smaller than given size.

For instance, to find files that are bigger than 4GB in a directory, just enter:

$ find . -type f -size +4G

Sample output from my system:

./VirtualBox VMs/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi
./VirtualBox VMs/Ubuntu 16.04 Server/Ubuntu 16.04 Server.vdi
./Soft_Backup/VHD's/Antergos/Antergos.vdi
./Soft_Backup/VHD's/FreeBSD 10.3 MATE desktop/FreeBSD 10.3 MATE desktop.vdi
./Soft_Backup/VHD's/Fedora 23 desktop/Fedora 23 desktop.vdi
./Soft_Backup/VHD's/Fedora 23 desktop/.goutputstream-UT19IY
./Soft_Backup/VHD's/openSUSE 42.1 Leap Desktop/openSUSE 42.1 Leap Desktop.vdi
./Soft_Backup/VHD's/Ubuntu 17.04 server/Ubuntu 17.04 server.vdi
./Soft_Backup/VHD's/Fedora 23_/Fedora 23 .vdi
./Soft_Backup/VHD's/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi
./Soft_Backup/VHD's/Ubuntu 14.04 LTS desktop/Ubuntu 14.04 LTS desktop.vdi
./Soft_Backup/VHD's/Debian 8 Desktop/Debian 8 Desktop.vdi
./Soft_Backup/VHD's/FreeBSD 10.3 server/FreeBSD 10.3 server.vdi
./Soft_Backup/VHD's/OpenMandriva Lx 3 desktop/OpenMandriva Lx 3 desktop.vdi
./Soft_Backup/VHD's/Elementary OS_/Elementary OS_.vdi
./Soft_Backup/OS Images/Linux/openSUSE-Leap-42.1-DVD-x86_64.iso/openSUSE-Leap-42.1-DVD-x86_64.iso
[...]

As you can see, I have some files with size bigger than 4GiB. Here, thedot(.) indicates the current directory.

To search for files bigger than 4 GiB in the entire filesystem, run:

$ find / -type f -size +4G

To know files bigger than X size in a specific directory, replace the dot (.) in the above command with the directory path like below.

$ find Downloads/ -type f -size +4G

The above command find files bigger than 4 GiB inDownloadsdirectory.

Similarly, to find the files which are smaller than X size, for example 4GiB, use the following command:

$ find . -type f -size -4G

You can use size switch for other formats, such as

  • `c' for bytes
  • 'w' for two-byte words
  • `k' for Kilobytes
  • `M' for Megabytes
  • `G' for Gigabytes

For example, to find files which are bigger than 4MB, use the following command:

$ find . -type f -size +4M

To find files smaller than 4MB, use this command:

$ find . -type f -size -4M

You might wonder how to find files between a certain size. For instance, you can find filesbetween 30MB and 40MBusing the following command:

$ find -size +30M -size -40M

To find files of exact size, for example 30MB, run:

$ find -size 30M

For more details, refer man pages.

$ man find

Update:

As one of the reader mentioned in the comment section below, the find command can also display a long listing of all the files it finds by using the-execswitch. The command below will find all of the files between 30M and 40M, and display a long listing of each file.

$ find . -type f -size +30M -size -40M -exec ls -l {} +

文章連結: https://ostechnix.com/find-files-bigger-smaller-x-size-linux/