Nadanie nazw plikom z pliku tekstowego

To mój pierwszy wpis na tutejszym forum, więc chciałbym się przywitać z Wami i ewentualnie prosić o wyrozumiałość. Jestem nowy, mam nadzieję, że temat podejmuję w dobrym wątku.

W bashu, terminalu chciałbym treść pliku tekstowego, przykładowo plik.txt o treści „koza.txt” przypisać zmienić nazwę pliku „blabla.txt” na „koza.txt”.
Jak to zapisać w bashu, żeby ten zamieniał treść pliku tekstowego na nazwę innego pliku?

Nie wiem jak to zrobić. W drugą stronę przenieść nazwę jakiegoś pliku do pliku tekstowego jest bezproblematycznie proste, ale na odwrót poległem.

Szukałem odpowiedzi, ale bezskutecznie i proszę o pomoc.

1 polubienie

Np. tak:
cat plik.txt | xargs -I {} mv -v blabla.txt "{}"

Poradziłem sobie w inny sposób, ale dzięki serdeczne.
Nie jestem programistą.
Poradziłem sobie w ten sposób:

nazwa=$(head file.txt)&&mv nazwa_pliku $nazwa

Chciałem zmienić parametry kilkudziesięciu plików wideo, pogorszyć jakość obrazu bez obniżania jakości dźwięku i coś takiego wymyśliłem. Może komuś się przyda. W katalogu musi być plik mp4.

find . -name "* " | awk ‘{ print length, $0 }’ | sort -nr -s | cut -d" " -f2- | while read f; do base=$(basename „$f”); newbase="${base// /}"; mv „$(dirname „$f”)/$(basename „$f”)” „$(dirname „$f”)/$newbase”; done&&ls *.mp4 > file.txt&&mv *.mp4 a.mp4&&nazwa=$(head file.txt)&&ffmpeg -i a.mp4 -map 0:v output.mp4 -map 0:a output.m4a&&ffmpeg -y -i output.mp4 -vf scale=360:-2,setsar=1:1 -c:v libx264 -c:a copy „output2.mp4”&&ffmpeg -i output2.mp4 -i output.m4a -c copy outputQQ.mp4&&echo $nazwa&&mv outputQQ.mp4 $nazwa&&rm file.txt output.m4a output.mp4 output2.mp4 a.mp4&&for f in *; do mv „$f” „${f//_/ }”; done