모든 파일을 동일한 디렉토리로 이동하거나 복사하려면 또는 -t
옵션을 사용할 수 있지만 이는 각 파일 이름을 인수로 입력 / 제공해야한다는 의미입니다. 다음과 같은 방식으로 작동하며 원하는만큼 많은 파일을 인수로 사용합니다.cp
mv
cp -t /destination/directory/ file1 file2 file3
또는
mv -t /destination/directory/ file1 file2 file3
이것은 매우 힘들지만 Bash의 탭 완성을 사용하면 파일 이름을 쉽게 입력 할 수 있습니다 .
또는 다음 bash 스크립트는 첫 번째 인수로 지정된 디렉토리의 모든 파일을 찾고 두 번째 인수로 지정된 대상 디렉토리로 선택한 파일을 복사합니다.
각 파일을 확인하고 해당 파일을 복사 할 것인지 묻습니다. 파일 선택이 끝나면 선택한 파일 목록이 표시되고 파일을 대상 디렉토리에 복사할지 묻습니다.
#!/bin/bash
directory=$1
destination=$2
selected_files=()
for f in ${directory}/*
do
if [[ -f $f ]]
then
while true
do
read -p "Would you like to copy ${f}? y/n: " choice
case $choice in
y|Y) selected_files+=("$f");
break ;;
n|N) echo "${f} will not be copied.";
break ;;
*) echo "Invalid choice, enter y/n: " ;;
esac
done
fi
done
echo "The following files will be copied to ${destination}."
for file in "${selected_files[@]}"
do
echo "$file"
done
while true
do
read -p "Are these the correct files? y/n: " confirm
case $confirm in
y|Y) break ;;
n|N) echo "Exiting filechooser"; exit 1 ;;
*) echo "Invalid choice, enter y/n: " ;;
esac
done
cp -t "$destination" "${selected_files[@]}"
이 스크립트에는 대상 디렉토리가 있는지 또는 올바른 인수를 입력했는지에 대한 오류 점검이 없음을 경고하십시오.