User Tools

Site Tools


linux:find

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:find [2020/09/20 12:45] Wulf Rajeklinux:find [2025/02/11 21:14] (current) Wulf Rajek
Line 1: Line 1:
 ====== find examples ====== ====== find examples ======
 +
 +General note to ''-exec {} +'' vs ''-exec {} \;'':
 +The following executes program and sends a space separated list of quoted filenames to it. Program may be called multiple times if the amount of arguments exceeds ARG_MAX.
 +<code>find . -exec program {} +</code> 
 +
 +The following executes program with one! quoted filename, then executes program again with the next etc.
 +<code>find . -exec program {} \;</code> 
 +
 +
 +
  
 Find and extract all rar files in subfolders into the current folder: Find and extract all rar files in subfolders into the current folder:
Line 64: Line 74:
 find . -type f -name "*\[*" -print0 | xargs -r0 rename 's/(.*) \[(\d\d\d\d?p)\](.*)/$1.$2$3/' -- find . -type f -name "*\[*" -print0 | xargs -r0 rename 's/(.*) \[(\d\d\d\d?p)\](.*)/$1.$2$3/' --
 </code> </code>
 +
 +Recursive file renaming extension (e.g. from "something.oldext" to "something.newext") :
 +<code>
 +find . -type f -name '*.oldext' -print0 | xargs -0 rename 's/\.oldext/\.newext/'
 +</code>
 +
  
 Move files in subdirectories to other directory while retaining directory structure Move files in subdirectories to other directory while retaining directory structure
Line 79: Line 95:
 delete empty directories: delete empty directories:
 find /home/something/ -type d -empty -delete find /home/something/ -type d -empty -delete
 +</code>
 +
 +====== Replace spaces with underscores ======
 +Mass replace spaces with underscores
 +<code>
 +for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done
 +</code>
 +
 +====== Find largest subdirectories ======
 +<code>
 +du -hd1 | sort -h
 +</code>
 +
 +====== Recursively changing extension ======
 +<code>
 +find . -type f -name "*.part" -exec sh -c 'mv "$1" "${1%.part}.!qB"' _ {} \;
 +</code>
 +
 +====== Recursively delete empty directories ======
 +<code>
 +find . -type d -empty -delete
 </code> </code>
linux/find.1600602336.txt.gz · Last modified: 2023/05/29 11:53 (external edit)