Próbuję skopiować pliki i podfoldery z A folderu bez A sama. Na przykład, katalog zawiera dalej:
| file1.txt
| file2.txt
| subfolder1
Wykonanie następnego polecenia daje mi zły wynik:
sudo cp -r /home/username/A/ /usr/lib/B/
Wynik to
/usr/lib/B/A/...copied files...
zamiast..
/usr/lib/B/...copied files...
Jak mogę dotrzeć do oczekiwanego bez folderu źródłowego
bash
command-line
cp
pushandpop
źródło
źródło
A/*
ma sens, ale są sytuacje, w których nie działa.shopt
jestbash
specyficzny. Zzsh
, użyj*(D)
. zksh93
,FIGNORE='@(.|..)'
.cp -t
jest specyficzny dla GNU. Tenfind
nie będzie działał poprawnie, ponieważA/
kilkakrotnie skopiuje zarówno jego zawartość, jak i podkatalogi.-maxdepth 1
(-mindepth
i-maxdepth
będąc rozszerzeniami GNU, teraz obsługiwanymi także przez kilka innych. Przenośniefind .../. ! -name . -prune -exec ....
)find .../.
powoduje tutaj błąd.Jeśli w systemie GNU, z
man cp
:To pozwala pisać
cp -rT /home/username/A/ /usr/lib/B/
dokładnie tak, jak trzeba.źródło
cp
. Ale to prawda, że-T
nie będzie działać z systemem innym niż GNUcp
.Powiedz,
cp
aby skopiować zawartość katalogu, a nie sam katalog:źródło
shopt -s dotglob
aby działały, jeśli są jakieś pliki dot/home/username/A/
.