Do tej pory wymyśliłem to.
if ls -1 ~/Downloads/*.mkv >/dev/null 2>&1
then
echo 1
else
echo 0
fi
Chciałbym jednak skopiować katalog macierzysty znalezionego pliku do innej lokalizacji.
Mam wrażenie, że powinienem po prostu użyć polecenia find.
.mkv
który chcesz skopiować w inne miejsce?Odpowiedzi:
Odpowiedź fede.evol kończy się niepowodzeniem, jeśli ścieżki zawierają spacje. Dane wyjściowe
find
lubls
nie powinny być używane w podstawianiu poleceń .Właściwy sposób postępowania ze wszystkimi nazwami plików (z wyjątkiem ścieżek z nowymi liniami) to:
W ten sposób każdy folder z
/somewhere
jest kopiowany do/other/
. Pamiętaj, że ukośnik końcowy jest obowiązkowy, ponieważ w przeciwnym razie cel zawsze zostanie nadpisany.źródło
Służy
dirname FILE
do uzyskania nazwy katalogu danego pliku. Na przykład:Da ci wszystkie katalogi z MKV pod DIRECTORY. Następnie możesz przekazać je,
uniq
aby nie dostać podwójnych, a następnie w przypadku kopiowania.Na przykład
źródło
find
lubls
wyjściowych.