Pindahkan file ke Trash on Snow Leopard dari Terminal


13

Snow Leopard memungkinkan pengguna untuk "Pasang Kembali" file yang dipindahkan ke Sampah dari Finder. Namun, ketika saya melakukannya mv <file> ~/.Trashdari baris perintah saya tidak mendapatkan opsi "Pasang Kembali".

Apakah ada perintah asli di Snow Leopard yang memindahkan file ke tempat sampah sambil membiarkan saya tetap dapat kami "Pasang Kembali"?

Jawaban:


2

Ketika Anda memindahkan file ke tempat sampah OS X memperbarui .DS_Storefile di dalamnya ~/.Trashdengan informasi "Pasang kembali". (Lihat pertanyaan ini untuk lebih jelasnya )

Untuk memperbarui ini, Anda juga harus memperbarui .DS_Storefile ketika Anda memindahkan file ke Trash in Terminal.


Terima kasih. Bukan apa yang saya harapkan, tapi itu kebenarannya.
matpie

9

Saya sarankan menginstal Ruby gem osx-trash .

Bagaimana?

sudo gem install osx-trash

Pemakaian?

Usage: trash [OPTIONS] <file> [<file> ...]
       trash [-e | --empty]
       trash [-l | --list]
Specific options:
    -e, --empty                      Empty the trash
    -l, --list                       List items in the trash
    -h, --help                       Show this message
    -v, --version                    Show version

Manipulate to the Finder's trash.

2
Bagus! Padahal, saat berkomunikasi dengan Finder, trashing file dengan wildcard memainkan suara trashing untuk setiap file.
Jari Keinänen

1
Saya tidak berpikir ini masih berfungsi. Dari dokumen: osx-trash membutuhkan Mac OS X 10.5, Leopard. Saya mencobanya dan yang saya dapatkan adalahbash: trash: command not found
yourfriendzak

Tidak berfungsi pada OS X 10.9 mengajukan pertanyaan baru tentang cara memperbaikinya di sini superuser.com/questions/694433/…
simbo1905

2

Di MacOSX SDK, ada fungsi FSPathMoveObjectToTrashSyncdan terkait. Seharusnya mudah untuk menulis skrip Python (atau apa pun) di sekitarnya.

Sunting : Baru dikodekan. Dapat ditemukan di sini: rm-trash.py .


FYI - FSPathMoveObjectToTrashSync tidak digunakan lagi di 10.8 dan menurut dokumen ini Anda perlu menggunakan trashItemAtURL: resultItemURL: error: gantinya.
Lester Cheung

2

Anda menginginkan program rmtrash .

Anda dapat menggunakannya untuk menambahkan item ke Sampah seolah-olah itu dilakukan di finder.

Sunting: Saya baru saja mencoba menggunakan rmtrash untuk menghapus dan memulihkan. Ini berfungsi persis seperti menghapus dari finder. File muncul di Sampah, dapat diseret keluar dan dikosongkan persis sama. Sudah menggunakannya sejak '06 atau lebih.


Dari kode rmtrash, sepertinya hanya setara dengan mv file ~/.Trash/. Apakah Anda yakin dapat memulihkan file dari alat ini?
Albert

0

Setelah melihat alternatif saya menemukan bahwa:

  • Program rmtrash memindahkan file ke direktori trash tanpa menggunakan sistem API, sehingga file .DS_Store tidak akan diperbarui . Juga, tidak memicu suara daur ulang.
  • Skrip python memanggil metode usang pada singa gunung yang juga tidak memicu suara daur ulang.
  • Script ruby ​​bekerja, tetapi sloooooow (seperti yang python).

Jadi saya menulis perintah sampah saya sendiri diimplementasikan dalam bahasa pemrograman Nimrod, jadi cepat dan memicu suara trashcan dalam proses latar belakang. Ini berarti bahwa mengetik perintah dan menjalankannya segera keluar karena tidak perlu menunggu suara dimainkan. Yang perlu anda lakukan adalah mengkompilasi nimrod dan kemudian program ini (jangan biner maaf!).

PS: Sejujurnya, implementasi terbaik adalah rmtrash menggunakan API resmi yang saya gunakan dari Nimrod, yang merupakan tujuan sederhana-c .


0

Lihat trash-cli. Ini bekerja lintas platform, tidak ada suara sampah, dan mendukung Put Back.

Anda dapat menginstalnya dengan (memerlukan Node.js ) :

$ npm install --global trash-cli

Atau, jika Anda tidak ingin menggunakan Node.js, Anda dapat menginstal biner asli osx-trashsecara manual.


-1

Saya memiliki masalah yang sama hari ini dan memeriksa juga program rmtrash yang diberikan di atas. Sayangnya semua solusi yang dilihat sejauh ini memindahkan file ke direktori home. Trash.

Finder di sisi lain memindahkannya ke folder -Trash yang berbeda, berdasarkan titik pemasangan sistem file file.

Jadi solusi termudah yang dapat saya buat (dibuat pada 10.5.8. Untuk diuji pada versi OS X yang lebih baru) adalah ini:

osascript -e 'tell application "Finder" to delete POSIX file "'FULL FILENAME HERE'"'

Berikut ini skrip shell yang saya buat untuknya:

#!/bin/bash
declare -a files
for f in "$@" ; do
    if [ -r "$f" ] ; then
        case "$f" in
        /*) ;;
        *) f="$( pwd )/$f" ;;
        esac
        files=("${files[@]}" "$f")
    else
        echo "Can't find '$f'" >&2
    fi
done
if [ ${#files[@]} -gt 0 ] ; then
    osascript -e '
    on run argv
        repeat with f in argv
            set x to (POSIX file f) as string
            tell application "Finder" to delete x
        end
    end
    ' "${files[@]}" > /dev/null
fi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.