Mam problem z napisaniem skryptu, potrzebuję aby wyszukiwał on w danym katalogu pliki z rozszerzeniem .txt i .avi, a następnie przenosił je do innego katalogu. Miałby przykładowo wyszukać pliki 111.avi i 111.txt, a następnie przenieść je do katalogu np. movie.
Zależy mi na tym aby przenosił tylko jeśli będą te dwa pliki, czyli dajmy na to jeśli znajdzie sam plik 111.avi to ma nic z nim nie robić.
Natomiast jeśli skrypt by wyszukiwał jeszcze pliki zawierające w nazwie "PL" i przenosił je do tego samego katalogu to byłbym w pełni szczęśliwy (chociaż to akurat umiem napisać).
Wymyśliłem taki szkielet (oczywiście to w nawiasach zmieniłbym na mv).
Kod: Zaznacz cały
#!/bin/bash
find /home/movie/ -type f -iname \*.avi | while read -r line ; do
dir=${line%/*}
name=${line##*/}
(
cd /home/bubi/movie/
qnapi "$name"
)
done
Dodane:
Problem rozwiązany:
Kod: Zaznacz cały
dir="./1/"
targetdir="./2/"
find "$dir" -type f -iname "*.avi" | while read avi; do
base=`basename "$avi"`;
base="${base:0:${#base}-4}"
find "$dir" -type f -iname "${base}.txt" | while read txt; do
echo "Moving $avi and $txt"
mv -f "$avi" "$targetdir"
mv -f "$txt" "$targetdir"
done
done