оказался HPN-SSH
и PIGZ
.
TAR -CF - -C [RelativeFolder] [Имя файла] | PIGZ |. SSH PX "PIGZ -D | TAL XF - -C [Удаленный полки]«
Улучшение мощность в десять.
Для справки, установки HPN-SSH
и PIGZ
на Ubuntu 14.04
легко, как:
# hpn-patched ssh from ppa
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:w-rouesnel/openssh-hpn
sudo apt-get update -y
sudo apt-get install openssh-server
ssh -V # should have 'hpn' in it somewhere
# pigz
sudo apt-get install pigz
Если % 2F
является буквальной строкой (не управляющим символом), вы можете попробовать этот небольшой скрипт:
for file in index*.jpg; do
dir1=$(grep -Po '.*dir=\K[[:alnum:]]*' <(echo "$file"))
dir2=$(grep -Po '.*dir=[[:alnum:]]*%2F\K[[:alnum:]]*' <(echo "$file"))
dir3=$(grep -Po '.*dir=[[:alnum:]]*%2F[[:alnum:]]*%2F\K[[:alnum:]]*' <(echo "$file"))
filename=$(grep -Po '.*file=\K.*' <(echo index.php\?dir\=IOP%2FFOO%2FBAR%2F\&file\=ScanImage001.jpg))
echo mkdir -p $dir1/$dir2/$dir3 #remove echos
echo mv $file $dir1/$dir2/$dir3/$filename #at the beginning of the line
done
Удалите обе команды echo
, если вам нравится то, что вы видите на экране .
for i in *.jpg
do
b=$(echo $i | sed 's/.*dir=//' | sed 's/%2F/\//g' | sed 's/&file=//')
mkdir -p "$(dirname "$b")
mv "$i" "$b"
done
Строка с вызовами sed
хранит полный путь, который должно получить имя файла.
Строка mkdir
создает каталог, включающий промежуточные каталоги, и не жалуется, если они уже существуют.
предположим, что в одной переменной $url
short=$(echo $url | sed -e s,%2F,/,g -e s,^index[^=]*=,, -e s,.file=,,)
mkdir -p $(dirname $short)
mv $url $short
mkdir -p
создаст каталог, вместе со всеми путями. $(dirname $short)
выдаст вам часть $short (например, IOP/FOO/BAR
)