Difference between revisions of "Linux command: find"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) Tag: visualeditor |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | == find files == | + | ===find files=== |
<nowiki>find <path> -name <filename></nowiki> | <nowiki>find <path> -name <filename></nowiki> | ||
| − | == find files modified in the last 24h == | + | ===find files modified in the last 24h=== |
<nowiki>find <path> -mtime -1 -ls</nowiki> | <nowiki>find <path> -mtime -1 -ls</nowiki> | ||
| − | == find case | + | |
| + | ===Last 3 accessed files=== | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===Last 3 modified files=== | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | *<code>find . -type f -exec stat -c '%X %n' *</code>: prints the last access' time followed by the file's path for each file in the current directory hierarchy; | ||
| + | *<code>find . -type f -exec stat -c '%Y %n' *</code>: prints the last modification's time followed by the file's path for each file in the current directory hierarchy; | ||
| + | *<code>sort -nr</code>: sorts in an inverse numerical order; | ||
| + | *<code>awk 'NR==1,NR==3 {print $2}'</code>: prints the second field of the first, second and third line. | ||
| + | |||
| + | You can change the number of files to be shown by changing 3 to the desired number of files in <code>awk 'NR==1,NR==3 {print $2}'</code>. | ||
| + | |||
| + | ===find case insensitive=== | ||
find . -iname "fileName.txt" | find . -iname "fileName.txt" | ||
| + | |||
| + | ===find video files=== | ||
| + | find . -type f -exec file -N -i -- {} + | grep video | ||
| + | or if you only want the filenames ... | ||
| + | find . -type f -exec file -N -i -- {} + | sed -n 's!: video/[^:]*$!!p' | ||
| + | |||
| + | ===Exclude extension=== | ||
| + | find Vídeos/popcorntime/ -type f -not -name "*.torrent" -not -name "*.jpg" -not -name "*.srt" -not -name "*.txt" -exec mv "{}" /media/rafa/HM_030/video/ \; | ||
| + | |||
| + | ===Exclude 2 extensions=== | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | find ./ ! -regex '.*\(deb\|vmdk\)$' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | === Find video files === | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | find . -regex '.*\(avi\|mp4\|mkv\)$' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===Large Files=== | ||
| + | find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }' | ||
Latest revision as of 21:51, 18 March 2020
find files
find <path> -name <filename>
find files modified in the last 24h
find <path> -mtime -1 -ls
Last 3 accessed files
find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
Last 3 modified files
find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
find . -type f -exec stat -c '%X %n' *: prints the last access' time followed by the file's path for each file in the current directory hierarchy;find . -type f -exec stat -c '%Y %n' *: prints the last modification's time followed by the file's path for each file in the current directory hierarchy;sort -nr: sorts in an inverse numerical order;awk 'NR==1,NR==3 {print $2}': prints the second field of the first, second and third line.
You can change the number of files to be shown by changing 3 to the desired number of files in awk 'NR==1,NR==3 {print $2}'.
find case insensitive
find . -iname "fileName.txt"
find video files
find . -type f -exec file -N -i -- {} + | grep video
or if you only want the filenames ...
find . -type f -exec file -N -i -- {} + | sed -n 's!: video/[^:]*$!!p'
Exclude extension
find Vídeos/popcorntime/ -type f -not -name "*.torrent" -not -name "*.jpg" -not -name "*.srt" -not -name "*.txt" -exec mv "{}" /media/rafa/HM_030/video/ \;
Exclude 2 extensions
find ./ ! -regex '.*\(deb\|vmdk\)$'
Find video files
find . -regex '.*\(avi\|mp4\|mkv\)$'
Large Files
find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'