webdav
запись появляется в списке каталогов для /mnt
, но когда ls
попытки считать inode /mnt/webdav
, сказано, что никакой такой файл не существует. Контраст:
# \ls /mnt
webdav
# ls
ls: cannot access webdav: No such file or directory
webdav
Это - любой псевдоним, для которого Вы используете ls
(обычно ls -F
или ls --color
) порождение ls
считать метаданные по /mnt/data
(вызов stat(2)
) и сбой.
Wdfs испытывает затруднения при соединении с сервером. Для наблюдения, какова ошибка проверьте системные журналы или попытку выполнить wdfs в более подробном режиме или ищейку на сетевом трафике.
Ваш формат предполагает, что никакие имена файлов не имеют новые строки в них, который не идеален (новые строки законны в именах файлов). Вы также не упоминаете свою оболочку. Однако в оболочке POSIX, можно сделать это:
while IFS= read -r file; do
cp -- "$file" new_dir/
done < file
В ударе это могло бы быть быстрее для передачи их всех CP сразу, однако (как долго, как Вы ниже ARG_MAX
):
files=()
while IFS= read -r file; do
files+=( "$file" )
done < file
cp -- "${files[@]}" new_dir/
... или, то же самое, если у Вас есть bash4 +:
mapfile -t files < file
cp -- "${files[@]}" new_dir/
С инструментами GNU:
xargs -rd '\n' cp -t /dest/folder -- < file1.txt
POSIXly:
sed 's/./\\&/g' < file1.txt | xargs sh -c 'exec cp -- "$@" /dest/dir' sh
echo "$0"; echo "$BASH_VERSION"
? Попробуйте первый пример вместо этого, он должен работать в любой оболочке POSIX.mapfile
пример только продолжит работатьbash4+
. Какие сообщения об ошибках печатаются? – Chris Down 30.08.2013, 18:09