Это сложный вопрос без простых ответов ..
Любая передача «точка-точка» должна учитывать все возможные элементы, которые могут ограничивать скорость, влиять на задержку или просто останавливать вещи из (! d1)
Теоретический
Кроме того, возможно, вне темы для этого форума.
Вот чужой ответ:
Whirlpool.net.au> Gigabit .. какова фактическая скорость передачи
Гигабит до 125 МБ / сЭто просто математика, основанная на теоретических 1 гигабит / с и 8 бит в байтах.
Гигабит до 125 МБ / с
1) Накладные расходы TCP. Самое высокое, что вы когда-либо видели в идеальном мире, составляет около 100 МБ / с. 2) Пропускная способность диска. Ваш диск, вероятно, будет самым медленным звеном в цепочке здесь - поиск скорости, скорости доступа, все они играют определенную роль. 3) машинный ввод-вывод. Если ваш компьютер находится под нагрузкой, это, вероятно, повлияет на скорость передачи.Другим способом достижения копии в нескольких местах является следующая команда:
find dir1 dir2 -exec cp file.txt {} \;
Если dir1 или dir2 имеют подкаталоги, которые вы не хотите скопировать в файл, добавьте -maxdepth 0 option:
find dir1 dir2 -maxdepth 0 -exec cp file.txt {} \;
Обратите внимание, что это будет перезаписывать каждый файл в dir1 и dir2 с содержимым file.txt, в дополнение к его копированию. Чтобы скопировать file.txt, не затрагивая другие файлы в этих каталогах, скажите find действовать только в каталогах:
find dir1 dir2 -type d -exec cp file.txt {} \;
Команда
cp ~/test.txt ~/folder1 ~/folder2
пытается скопировать два файла (~/test.txt и ~/folder1) в пункт назначения folder2. (И если ~/folder2 существует и является каталогом, у вас будет предупреждение «omitting directory»).
Если вы хотите сделать несколько копий файла test.txt, вам нужно использовать цикл или несколько команд ...
for i in ~/folder1 ~/folder2; do cp ~/test.txt $i; done
(... и будьте осторожны, если в именах файлов есть пробелы, вам нужно указать).
Чтобы скопировать целые каталоги, вы должны использовать опцию -r:
for i in ~/folder1 ~/folder2; do cp -r ~/folder3 $i; done
это создаст ~/folder1/folder3 и ~/folder2/folder3 со всеми включенными файлами.
Вы можете создать скрипт справки, или вы можете сделать это с помощью функции xargs и печати (в этом случае echo):
echo firstDir secondDir | xargs -n 1 cp test
Это сделает каждую директорию как аргумент функции cp, используя тестовый файл в качестве параметра.
После долгого поиска эта работа как Charm также!
for dir in *; do [ -d "$dir" ] && cp /path/file.txt "$dir" ; done
Это скопирует файл.txt в любой каталог вашего текущего местоположения в терминале.
for dir in *; do [ -d "$dir" ] && cp -rf /path/folder "$dir" ; done
Это скопирует папку во все подкаталоги в вашем текущем местоположении в терминале.
Я разделяю это, надеюсь, что это поможет и другим.
Если вы хотите скопировать файл test.txt в каждый каталог в / tmp / target / ...
создать тестовую среду:
mkdir /tmp/target
cd /tmp/target
mkdir -v {folder1,folder2,folder3}
touch test.txt
скопировать ее:
find * -maxdepth 0 -type d -exec cp -vi test.txt {} \;
Просто подумал дать вариацию ответа Sylvain Pineau
, где dir1 и dir2 не находятся в вашем текущем каталоге.
find ./ -maxdepth 2 -type d -name dir1 -exec cp file.txt {} \; 2]
здесь find будет искать dir1 два уровня в глубину, или вы можете оставить -maxdepth параметр, чтобы найти dir1 во всех папках в текущем каталоге и под ним.