"Ist ein Verzeichnisfehler" in der Bash

2

Ich habe nur sehr begrenzte Kenntnisse bashund konnte nicht herausfinden, was ich falsch mache.

Ich versuche, die Schritte in diesem Blogeintrag zu befolgen: Verwenden von Mendeley und Dropbox zum Synchronisieren Ihrer PDF-Bibliothek auf mehreren Computern

Wenn ich jedoch die Terminalbefehle ausführe, wird die folgende Fehlermeldung angezeigt:

~/Library/Application\ Support>cp -r Mendeley\ Desktop/ ~/Dropbox/Mendeley/db/
-bash: /Users/XXXXXXXX/Library/Application Support: is a directory

Alles, was ich online gelesen habe, scheint darauf hinzudeuten, dass dieser Befehl korrekt ist.

Jahresverlauf
quelle
Der Artikel, auf den Sie verlinkt haben, hatte wirklich nichts mit Bash-Scripting an sich zu tun. Es wurden lediglich einige einzelne Befehlszeilenprogramme in einem Terminal ausgeführt. In diesem Fall ist dies nicht dasselbe wie Bash-Scripting. Das heißt aber, der Artikel ist IMO schlecht geschrieben! Die angezeigte Eingabeaufforderung ist untypisch für die Standardaufforderung in OS X, die normalerweise das in der Umgebung definierte Muster aufweist PS1='\h:\W \u\$ '. Wo \hist der Hostname bis zum ersten '.' :Als Trennzeichen, \Wder Basisname von $PWD, mit $HOMEeiner Tilde abgekürzt, ein Leerzeichen als Trennzeichen, (Fortsetzung im nächsten ...)
user3439894 10.02.16
\uder Benutzername des aktuellen Benutzers und \$wenn die effektive UID 0 ist #, ansonsten $gefolgt von einem anderen Leerzeichen . So ist die Eingabeaufforderung mit dem cpBefehl sollte wie ausgesehen hat, zum Beispiel mac1:Application Support johndoe$ cp -r Mendeley\ Desktop/ ~/Dropbox/Mendeley/db/nach dem ersten gesagt worden ist , um tatsächlich cdzu ~/Library/Application\ Support, was nicht getan werden soll , wurde gesagt. Gerade eine extrem schlechte Darstellung dessen gezeigt, wie die Eingabeaufforderung aussehen würde und wie sie niemals zuvor ausgesehen hätte! Es ist also überhaupt nicht deine Schuld, dass Verwirrung herrschte.
user3439894

Antworten:

1

Der Autor des verlinkten Artikels hatte wahrscheinlich ein modifiziertes Bash-Profil (wie vom Benutzer user3439894 in den Kommentaren zu Ihrer Frage erklärt) oder Probleme beim Kopieren und Einfügen der Befehle.

Verwenden Sie stattdessen Folgendes:

cd ~/Library/Application\ Support
cp -r Mendeley\ Desktop/ ~/Dropbox/Mendeley/db/
mv Mendeley\ Desktop/ _backup_Mendeley_Desktop/
ln -s ~/Dropbox/Mendeley/db/Mendeley\ Desktop .

Bitte vergessen Sie nicht, den Punkt .am Ende des letzten Befehls einzufügen. Die letzte Zeile bedeutet: Erstellen Sie einen Softlink des Ordners "~ / Dropbox / Mendeley / db / Mendeley Desktop" in Ihrem aktuellen Arbeitsverzeichnis ("~ / Library / Application Support").

Erklärung:

  1. cd ~/Library/Application\ Support: Ändern Sie das Arbeitsverzeichnis in "/ Users / YourUserFolder / Library / Application Support".
  2. cp -r Mendeley\ Desktop/ ~/Dropbox/Mendeley/db/: kopiere den Ordner (einschließlich des Inhalts) "Mendeley Desktop" in den Ordner "~ / Dropbox / Mendeley / db /"
  3. mv Mendeley\ Desktop/ _backup_Mendeley_Desktop/: Benennen Sie den Ordner "Mendeley Desktop" in "_backup_Mendeley_Desktop" um (verschieben / sichern).
  4. ln -s ~/Dropbox/Mendeley/db/Mendeley\ Desktop .: Erstellen Sie einen Softlink des Ordners "~ / Dropbox / Mendeley / db / Mendeley Desktop" in Ihrem aktuellen Arbeitsverzeichnis.
klanomath
quelle
1
Unabhängig davon, ob der Autor des verlinkten Artikels ein modifiziertes Bash-Profil hat oder nicht, wo der Artikel fehlte, enthielt er keine wirkliche Anweisung für den Gegenstand, der die Verwendung des Terminals umgibt. Es genügt zu sagen, dass der durchschnittliche Computerbenutzer die Befehlszeile nicht oft verwendet und in der Regel zunächst eingeschüchtert ist, selbst wenn klare Anweisungen vorliegen. Welche IMO dem Artikel in diesem Bereich fehlte. (Fortsetzung im nächsten Kommentar ...)
user3439894
1
Anstatt zB "[mac] @ mac1: ~ / Library / Application Support>" anzuzeigen, sollte es eine klare Richtung cdzu ~/Library/Application\ Supportund dann nur die einzelnen Befehle ohne Anzeige einer atypischen Eingabeaufforderung geben. Wenn die Eingabeaufforderung angezeigt werden soll, verwenden Sie eine typische Standardeinstellung oder verwenden Sie sie nur, $wie in einigen Dokumentationen üblich, oder zeigen Sie sie überhaupt nicht an. Persönlich möchte ich lieber dazu aufgefordert werden cd... und dann nur die tatsächlichen auszuführenden Befehle anzeigen, ohne dass eine Eingabeaufforderung angezeigt wird. Je weniger Unordnung über die tatsächlichen auszuführenden Befehle besteht, desto einfacher kann der Prozess verstanden werden.
user3439894
Ich wollte nur, dass Sie durch meine Kommentare wissen, dass Sie Ihre Antwort ändern oder eine Erklärung abgeben müssen. Ich war nur ein Kritiker des schlecht geschriebenen verknüpften Artikels der IMO im OP. Ihre Antworten sind in der Regel gut geschrieben und leicht zu verstehen, auch wenn es sich um komplizierte Themen handelt, die in diesem Beispiel nicht behandelt werden. Das heißt, Ihre kürzliche Bearbeitung bietet sicherlich einen Mehrwert für den Kommandozeilen-Neuling. :) Ich würde dir wieder +1 geben, wenn ich könnte.
user3439894
1
@ user3439894 Bei vielen meiner Antworten bezüglich der Shell fehlt eine Erklärung, was die Befehle tatsächlich tun. Also habe ich Ihre Kommentare als Anreiz genommen, einen hinzuzufügen. ;-)
klanomath