Vraag Wat betekent "cp: weglaten van map"?


Ik heb het volgende commando uitgegeven:

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

Wanneer ik dit doe, ontvang ik de volgende berichten:

cp: omitting directory `Tag' 
cp: omitting directory `Test' 
cp: omitting directory `Text' 
cp: omitting directory `TimeSync' 
cp: omitting directory `Tool' 
cp: omitting directory `Translate' 
cp: omitting directory `Uri' 
cp: omitting directory `Validate' 

enzovoort...

Waarom krijg ik deze berichten?


365
2018-04-18 15:11


oorsprong




antwoorden:


Standaard, cp kopieert alleen de directe bestanden in, en niet submappen in de map. De boodschap cp: omitting directory 'directory' waarschuwt u dat de genoemde map niet wordt gekopieerd.

Hiertoe geeft u de -r (of --recursive) keuze:

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

De handmatige pagina (opdracht: man cp) bevat een overzicht van de beschikbare opties.


476
2018-04-18 15:15



Hartelijk bedankt. Ik dacht dat * het op de een of andere manier recursief zal behandelen. Maar nee. : D Nogmaals bedankt. :) - MEM
@MEM: het * wordt uitgebreid door Bash, niet door cp. Test het zelf door het te zetten echo  voor je commando. Als het wordt uitgevouwen, komt het overeen met alles met een voorgaande ...library/Zend/ (de bestanden en mappen daarin). - Lekensteyn
Goed nieuws is dat omitting directory 'directory' betekent niet dat het die map verwijdert. - Bishwas Mishra
@Lekensteyn Ik probeerde de inhoud van de ene gebruiker naar de andere te kopiëren. Dus ik kreeg toestemming van de gebruiker met chmod a+rx ~/ nadat ik heb geprobeerd te kopiëren met cp /home/2110/* /home/2111/ het veroorzaakt een fout die toestaat dat de toestemming wordt geweigerd. waar ik ongelijk had. sorry om commentaar te geven omdat ik geen dubbele vragen kan stellen. ik hoop op snel antwoord :) - jasinth premkumar
@jasinthpremkumar Bestanden in /home/2110 zijn eigendom van gebruiker 2110 terwijl bestanden in /home/2111 worden geacht eigendom te zijn van 2111. Gebruik zoiets als om de eigenaar in te stellen sudo chown -R 2111 /home/2111. - Lekensteyn


Het bericht betekent dat cp heeft de vermelde mappen niet gekopieerd. Dit is het standaardgedrag voor cp - alleen bestanden worden normaal gekopieerd, ongeacht of u ze expliciet opgeeft of gebruikt *. Als u mappen kopiëren wilt, gebruikt u de -r schakelen wat "recursief" betekent.


34
2018-04-18 15:15





Een paar dingen die hier moeten worden gecontroleerd:

  1. Niet gebruiken sudo. Je hebt het niet nodig, je hebt al de rechten om dingen in je eigen homedirectory te schrijven.

  2. U kunt eenvoudig verborgen bestanden en mappen bekijken in het grafisch bestandsbeheer door Verborgen bestanden weergeven / weergeven in het menu te selecteren. Of door op te drukken Ctrl - H.

  3. U moet de gebruiken -R optie in de cp commando om een ​​map en de inhoud ervan te kopiëren.

  4. / home is niet je thuismap. / home / gebruikersnaam is. Dus je probeert waarschijnlijk van de verkeerde plaats te kopiëren.

  5. De shell is hoofdlettergevoelig, dus ~ / downloads en ~ / Downloads zijn twee verschillende dingen.


14
2017-10-04 07:02





Wanneer u een map kopieert zoals:

cp dir1 copy_of_dir1

U bent alleen en kopieert exact het dir1 zelf en niet de bestanden erin, dus uiteindelijk zal je eindigen met een nieuwe mapstructuur terwijl de structuur niet bestaat.

Met andere woorden, nadat het is gekopieerd, zal het zeggen dat mijn inhoud is file1, file2, enz; Deze bestanden zijn echter niet gekopieerd en bestaan ​​dus niet.

Dus om dit probleem op te lossen dat mogelijk naar voren kwam cp kopieert standaard de mappen niet en slaat ze over tenzij u dit opgeeft -r optie die ook alle bestanden recursief kopieert.


2
2017-07-03 07:47





De reden die het zegt omitting directory is omdat cp en alle kopieerprogramma's die ik ken, maken een lijst met bestanden en submappen die moeten worden gekopieerd voordat ze beginnen met het kopiëren van de bestanden. Wanneer de --recursive opties ontbreken, submappen worden van deze lijst verwijderd. Als zodanig verwijst weglaten naar verwijdering uit de kopieerlijst, niet naar uw bronmedia. Ik geloof dat dit de betekenis van de boodschap behandelt.


1
2017-07-24 08:32





Stel dat je twee mappen hebt 'Tag' en 'Test'

Als u de map 'Tag' naar de directory 'Test' wilt kopiëren, gebruikt u de opdracht

$ : cp -r Tag Test (case sensitive)

Meestal zal het probleem worden opgelost met de bovenstaande code, zo niet, en krijg je onderstaande boodschap zoals

cp: omitting directory `Tag' 
cp: omitting directory `Test'

voeg vervolgens enkele bestanden toe in de 'Tag'-map en kopieer die vervolgens naar' Test '. Eigenlijk heb ik hetzelfde probleem, maar het loste op zoals ik in de tweede plaats zei.


-1
2017-07-03 07:14