Mam plik na pulpicie, nazwa pliku to ded.html. Aby skopiować plik, klikam plik i naciskam cmd + c.
Jak teraz zrobiłbym to samo przy użyciu terminalu?
Mam plik na pulpicie, nazwa pliku to ded.html. Aby skopiować plik, klikam plik i naciskam cmd + c.
Jak teraz zrobiłbym to samo przy użyciu terminalu?
Odpowiedzi:
Jeśli dobrze rozumiem pytanie, to, czego szukasz, to pbcopyi pbpaste.
Otwórz terminal i wykonaj:
$ cat ~/Desktop/ded.html | pbcopy
Teraz ten plik jest w schowku.
Aby umieścić go w innym miejscu, to znaczy wkleić, wykonaj:
$ pbpaste > ~/Documents/ded.html
Teraz powinieneś mieć kopię pliku ded.html siedzącego w ~ / Documents.
cat ~/.emulator_console_auth_token | auth <read_content>?
Odpowiedź Lri zmierza we właściwym kierunku, ale ma kilka wad: nie ma potrzeby używania Findera ( the clipboardjest częścią StandardAdditions OSAX), a podanie programu runobsługi jest znacznie bardziej niezawodnym sposobem przekazywania argumentów z wiersza poleceń (od 10.4). Dokonanie obu tych zmian znacznie upraszcza „ucieczkę”, którą należy zrobić, aby wejść do programu w powłoce.
Oto moja wersja (zapakowana w funkcję powłoki - możesz ją umieścić (np.) Swoją, .bashrcaby była dostępna w swoich powłokach):
file-to-clipboard() {
osascript \
-e 'on run args' \
-e 'set the clipboard to POSIX file (first item of args)' \
-e end \
"$@"
}
file-to-clipboard ~/Desktop/ded.html
Plik, który został umieszczony w schowku za pomocą tego skryptu, można następnie wkleić w Finderze, aby skopiować plik do innego folderu.
osascript może być również używany jako interpreter hash-bang (od 10.5). Umieść to w pliku (np. file-to-clipboard)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Ustaw plik jako wykonywalny ( chmod +x /path/to/where/ever/you/put/file-to-clipboard). Następnie uruchom go tak:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
Jeśli jest przechowywany w katalogu w ścieżce, możesz pominąć ścieżkę do pliku „skryptowego”.
set the clipboard to {one,two}(chociaż inny program AppleScript może pomyślnie wyodrębnić listę). W StandardAdditions schowka polecenia mogą być ograniczone do pojedynczych elementów.
Nie ma sposobu, aby osiągnąć to, co próbujesz zrobić za pomocą wiersza polecenia. Chociaż Apple oferuje narzędzia pbcopyi pbpastepozwalające na podstawowe kopiowanie tekstu, nie możesz używać tych narzędzi do kopiowania pliku w takim znaczeniu, w jakim szukasz.
Bez wchodzenia w zbyt szczegółowe szczegóły techniczne, kiedy „kopiujesz” plik w Finderze za pomocą ⌘C, tak naprawdę nie kopiujesz samego pliku, tylko czyniąc odniesienie do pliku w schowku i oznaczając go jako odwołanie do pliku. Kiedy aplikacja otrzymuje to odniesienie podczas wklejania, ma obowiązek uporządkowania, znalezienia wklejonych elementów i ostatecznie pracy z plikiem, który uzna za odpowiedni. W istocie, gdy kopiujesz plik w Finderze, zapisuje on ścieżkę do pliku w określony sposób do określonego schowka, a po wklejeniu otrzymuje ścieżkę do pliku i wie, jak utworzyć nowy plik przy użyciu zawartości stary (skopiuj plik do schowka, usuń go, spróbuj wkleić go gdzie indziej i na przykład zobacz, co się stanie).
W tym sensie kopiowania i wklejania dostępne narzędzia nie wystarczą, aby zrobić to, czego potrzebujesz. Jak sugerował boehj, możesz spróbować skopiować zawartość starego pliku do nowego, ale będzie to działać dobrze tylko w przypadku plików tekstowych. Wszystkie otrzymane pliki binarne zostaną uszkodzone (spróbuj zrobić to z obrazem - zostanie uszkodzony).
Tradycyjny wiersz poleceń zawiedzie Cię w ten sposób, ale możesz rzucić okiem, jeśli chcesz to zrobić w AppleScript, a następnie wywołać to za pomocą wiersza polecenia osascript.
pbcopyi pbpastebędę działać z plikiem .html, to tylko dlatego, że akurat jest to plik tekstowy.
pbcopy -help, otrzymasz NSLog()powtarzającą się linię, która nie jest warta produkcji 'pbcopy -help'. Zrozumienie tego pomaga być programistą i dlatego czułem, że trzeba wejść.
Poniższa funkcja działa tylko z jednym plikiem, a nie z wieloma plikami. Wymaga GNU, readlinkktóry można zainstalować, uruchamiając brew install findutils.
copy(){ osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(greadlink -f -- "$1")";}
Edycja: usunąłem tell app "Finder"blok.
Edycja 2: Przywrócono wersję, która obsługuje ścieżki względne.
Oto prosty skrypt Shell / Bash. Po prostu wklej go do swojego .bashrcpliku (lub podobnego):
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
Przy wsparciu względnego pliku:
clip_img() {
osascript -e 'on run argv' \
-e 'set currentDir to do shell script "pwd"' \
-e 'set the clipboard to (read POSIX file (POSIX path of (currentDir as text & (first item of argv) )) as JPEG picture)' \
-e 'end run' "/$1"
# osascript -e 'clipboard info'
}
uruchom, clip_img path-to-fileaby skopiować obraz do schowka, i path-to-filemoże być względny. Plik może być plikiem JPEG lub PNG.
Możesz użyć cat 'originfile'> 'destinationfile' w środowiskach unix;
skopiuj plik docelowy pliku źródłowego w systemie Windows.