Выберите Инструменты -> Параметры -> Общие настройки. Снимите флажок «Запустить Skype при запуске». Сохранить и выйти из Skype.
Следующий скрипт сначала копирует структуру каталогов из источника, а затем файлы из вашего списка в соответствующие папки. Строка if not line in ["", "\n"] предназначена для предотвращения ошибок, если файл содержит пустые строки.
#!/usr/bin/env python
import os
import shutil
source = "/path/to/source"; target = "/path/to/target"; filelist = "/path/to/filelist.txt"
for root, dirs, files in os.walk(source):
for dr in dirs:
dr = root+"/"+dr
destdir = dr.replace(source, target)
if not os.path.exists(destdir):
os.makedirs(destdir)
with open(filelist) as lines:
src = lines.readlines()
for line in src:
if not line in ["", "\n"]:
shutil.copyfile(line.replace("\n", ""),
line.replace("\n", "").replace(source, target))
Как использовать
Скопировать сценарий в пустой файл, сохранить его как перемещение. py Добавьте соответствующие пути в раздел главы. Запустите его:python /path/to/move.py
Вы можете сделать это с помощью xargs довольно легко.
mkdir /newroot/
<filenames.txt xargs -I% bash -c 'mkdir -p /newroot/$(dirname "%" && cp "%" "/newroot/%"'
Жесткий бит гарантирует, что новая структура каталогов существует. Для этого мы используем dirname для получения имен каталогов, mkdir -p для их создания и, наконец, cp (или mv) для копирования / перемещения из одного в другой. Я оставил его в режиме копирования, чтобы вы могли проверить.
Я бы предложил проверить, что find /newroot/ -type f | wc -l и wc -l filenames.txt оба дают вам тот же номер впоследствии.