Проблема с вашим сценарием в том, что вы перебираете список файлов с полным абсолютным путем, а затем пытаетесь записать в тот же путь, что и последовательность подкаталогов вашего текущего каталога.
Вызахочет удалить путь из каждого имени файла.Вы можете сделать это с помощью basename
или с подстановкой параметров, что аналогично тому, как вы уже обрезаете расширение .csv
.
Даже тогда вы не можете использовать ./"$f"
для ссылки на "$f"
, потому что этобудет означать /path/to/current/directory/home/pc/Desktop/pcapfiles/first.pcap
и т. д.
#!/bin/bash
for f in /home/pc/Desktop/pcapfiles/*.pcap; do
base=${f##*/}
tshark -r "$f" \
-T fields -e frame.number -e frame.time \
-e ip.src -e ip.dst -e ip.proto -e frame.len \
-E header=y -E separator=, -E quote=d \
-E occurrence=f> ./"${base%.pcap}.csv"
done