Мне нужно с текущего каталога ( где я сейчас нахожусь) скопировать все содержимое в другой каталог.
Делаю эту команду cp -r /. build/, но ничего не копируется.
cp -r /.
здесь вы пытаетесь скопировать весь корень(/) в папку build
возможно вы имели в виду:
cp -r . build/
здесь попытка скопировать все файлы/папки текущей директории в папку
build находящуюся там же, то есть возникает рекурсия копирования самого в себя, про что команда
cp и выдаст предупреждение но всё же скопирует не допустив для данной папки рекурсии.
и да, папка build должна уже существовать.
полигон
$ mkdir -p test/{1,2,build} && touch test/{1,2}/a.txt && touch test/.b.txt && cd test && tree -a
.
├── 1
│ └── a.txt
├── 2
│ └── a.txt
├── .b.txt
└── build
поведение (для bash):
$ cp -r . build/
cp: невозможно скопировать каталог '.' в самого себя, 'build/.'
$ tree -a
.
├── 1
│ └── a.txt
├── 2
│ └── a.txt
├── .b.txt
└── build
├── 1
│ └── a.txt
├── 2
│ └── a.txt
└── build
и заметите что здесь не скопировался
скрытый файл
.b.txt (те что начинаются с точки)
чтобы избежать предупреждений можно
"вырезать" папку в которую копируем из списка файлов/папок передаваемых для cp при копировании:
$ cp -r `ls -A | grep -v build | xargs` build/
$ tree -a
.
├── 1
│ └── a.txt
├── 2
│ └── a.txt
├── .b.txt
└── build
├── 1
│ └── a.txt
├── 2
│ └── a.txt
└── .b.txt