bash:files:copy_files_to_different_directory
BASH - Files - Copy files to different directory
#!/bin/bash for filename in *; do if [[ -f "$filename" ]]; then base=${filename%.*} ext=${filename#$base.} mkdir -p "${ext}" mv "$filename" "${ext}" fi done
Copy all files by extension to single directory
find . -name \*.txt -exec cp {} someDirectory \;
or
find . -name "file*" -exec mv {} /tmp \;
NOTE: The open brackets {} are a placeholder for the argument which is to be used from the output of find.
NOTE: Why not just use mv file* /tmp.
- Problem with Moving Large Number of Files
- Linux systems have a predefined limit on the maximum number of arguments that can be used with a single command.
- This limit varies from system to system based on the stack size.
- Thus, if a very high number of files are being specified with the wildcard; e.g. over a hundred thousand files, it throws an error: Argument list too long.
bash/files/copy_files_to_different_directory.txt · Last modified: 2022/06/13 10:16 by peter