Это немного другой, но концептуально простой подход (без использования труб):
for fileName in `cat goodfiles.txt`; do mv $fileName /root/testing2/moved/; done
Синтаксис, который вы использовали в большинстве оболочек, создаст эту переменную среды и «экспортирует» ее. После этого, если tar явно не удалит его из окружения , его увидит каждая дочерняя программа.
Я вижу, что это имеет какой-то эффект. Сравните это:
$ XZ_OPT='-T0 -9 -vv' tar -cJf junk.tar.xz ~/.config
tar: Removing leading `/' from member names
xz: Filter chain: --lzma2=dict=64MiB,lc=3,lp=0,pb=2,mode=normal,nice=64,mf=bt4,depth=0
xz: Using up to 4 threads.
xz: 4,997 MiB of memory is required. The limiter is disabled.
xz: Decompression will need 65 MiB of memory.
100 % 2,541.8 KiB / 5,930.0 KiB = 0.429 0:01
с этим (, где я удалил-vv
):
$ XZ_OPT='-T0 -9' tar -cJf junk.tar.xz ~/.config
tar: Removing leading `/' from member names