Bash find
exclude
-path
works exactly like -name
, but applies the pattern to the entire pathname of the file being examined, instead of to the last component.
-prune
forbids descending below the found file, in case it was a directory.
Putting it all together, the command
1
find $HOME -path $HOME/$dir_name -prune -o -name "*$file_suffix" -exec cp {} $HOME/$dir_name/ \;
- Starts looking for files in
$HOME
. - If it finds a file matching
$HOME/$dir_name
it won’t go below it (“prunes” the subdirectory). - Otherwise (
-o
) if it finds a file matching*$file_suffix
copies it into$HOME/$dir_name/
.
The idea seems to be make a backup of some of the contents of $HOME
in a subdirectory of $HOME
. The parts with -prune
is obviously necessary in order to avoid making backups of backups…
https://unix.stackexchange.com/questions/376075/explain-finds-path-and-prune-options
--
Comments powered by Disqus.