2011-01-07 4 views
1

Ich versuche, den folgenden Befehl auf Mac OSX 10.6 Terminal, aber es funktioniert nicht .. Irgendeine Idee, was ich tun kann falsch?Wie verschiebe ich die älteste oder neueste Datei in einem Verzeichnis mit Mac OS X Terminal

Diese Arbeit ...

Liste neueste Datei:

ls -l -t | head -2 

Liste älteste Datei:

$ ls -gt | tail -1 

Aber wenn ich zu versuchen Bewegen Sie die älteste Datei, damit funktioniert es nicht:

mv `ls -tr |tail -1` newdirname 

Irgendwelche Ideen oder Tipps werden geschätzt !! Und seid bitte nette Leute, ich bin noch nicht so gut in diesem Kommandozeilen-Kram;)

Danke,

Jess

Ps.

Als ich geben diese:

mv `ls -tr |tail -1` DropBox 

ich dieses: mv: rename Test.txt to DropBox/Test.txt: No such file or directory

+0

Was passiert, wenn Sie den Befehl starten? Scheint gut zu sein und funktioniert auf Linux. – Simon

+0

Simon, ich habe die obige Ausgabe hinzugefügt. –

+0

Funktioniert auch auf Snow Leopard. Irgendwelche Fehlermeldungen zum Posten? – zellus

Antwort

4

die Dateien Angenommen, Sie bewegen sind im aktuellen Verzeichnis:

mv "`ls -1t | tail -1`" dir_to_move_to 

das Zitat Hilfe für Räume in Dateiname, aber ich denke nicht, dass meine Antwort elegant, eleganter ist?

+0

Ajreal DANKE SO VIEL - Das hat funktioniert !!! –

+2

Dies funktioniert nicht, wenn der Dateiname Leerzeichen enthält. Sie sollten Ihre Befehlszeile ändern, um das Ergebnis der Subshell-Ausführung zu zitieren. –

+0

bitte erleuchten uns weniger glücklich mit dem modifizierten Befehl – mkoryak

1

Das Hinzufügen des Parameters -1 zu Ihrer ls wird das beheben. Scheint so, als würde osx 'ls nicht korrekt prüfen, ob es an einem Terminal oder einer Pipe druckt.

0

Sie verschieben die neueste Datei. Versuchen

mv `ls -t |tail -1` newdirname 

oder

mv `ls -tr |head -1` newdirname 

Arbeiten auf meinem Ubuntu bash.

Verwandte Themen