Say I have a folder open in Nautilus that's in my /home/user/temp
directory. I'd like to move a folder from there to my /opt
directory (it's a program). Is there a way I can elevate the copy command up to a sudo
so that I can copy the folder without having to start a new instance of Nautilus from the command line?
6 Answers
As far as I can say, based on what I know and have experienced:
sudo
is used for command line applications/commands and gksudo
is useful when you try to run a program using the Run Application dialog window by pressing Alt+F2.
I have read that gksudo
is just the graphic version of sudo
.
Anyway, you can both drop sudo nautilus
and/or gksu nautilus
in a terminal for the purpose to do what you wish, having the same effect both commands. But if you want to omit the terminal and you wish to run it directly with the "Run Application" dialog window, just press Alt+F2 and write gksu nautilus
, after which you will be prompted to enter your password, then the nautilus file browser will open with root privileges.
Additionally, you can achieve to open files/folders as root with a single click by using the "Open as Administrator" option via right click. Which in any case will open a new nautilus instance for the given folder and will open files as root, this may also open/run applications as root but I haven't tested it yet.
You can get the "Open as Administration" option in your contextual menu by installing nautilus-gksu via command line: sudo apt-get install nautilus-gksu
or by using synaptic as shown in the next image:
Good luck!
-
It looks like I have to add something to get the "Open as" command. Do you recall what it was? I'm in Ub 11.– jcollumJan 25, 2012 at 18:53
-
nautilus-gksu, via synaptic (image added) or command line (also provided in the answer) Jan 25, 2012 at 19:13
-
3Here is why we should use
gksu nautilus
notsudo
: askubuntu.com/q/11760– TakkatJan 25, 2012 at 20:03 -
2Did nautilus-gksu move? Disappear? I can't find it in USC or apt-get.– jcollumApr 25, 2013 at 20:40
-
2@jcollum
nautilus-gksu
no longer exists in the repository as of Ubuntu 12.04. Jul 15, 2013 at 2:08
you need to run Nautilus as root
type this in the terminal
gksu nautilus
now you can move using the GUI.
or use this command
sudo mv -r /home/user/temp/<foldername>/ /opt/
-
1
-
you don't need to restart nautilus, just open another instance with the gksu command. But if you mean "open nautilus with my user and then got root privileges in that instance to move files" maybe that's what you need upubuntu.com/2011/12/…– zurdoJan 25, 2012 at 18:46
-
You will need to open a new nautilus window, but to make things easier you copy the location from the bar, and run the command:
gksu nautilus "/path/to/dir/pasted/here"
(the quotes around the path are important) Jul 15, 2013 at 2:07
Here's the nautilus-script I use to open an admin (root) Nautilus window:
#!/bin/bash
# This Nautilus script opens the current nautilus window in admin mode.
# Requires: perl, liburi-perl
ERROR_NEED_PERL="This script requires the liburi-perl package. Install it and try again."
GKSUDO_MESSAGE="Enter your password to open an admin window on: "
ERROR_BROKEN_LINK="Broken link."
## Check for liburi-perl (and hence perl)
let PERLOK=$(dpkg-query -W --showformat='${Status}\n' liburi-perl|grep "install ok installed")
if [ "" == "$PERLOK" ]; then
zenity --error --text "$ERROR_NEED_PERL"
exit 1
fi
let LEN_NSSFP=${#NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}-1
[ $LEN_NSSFP -lt 0 ] && let LEN_NSSFP=0
let LEN_NSSU=${#NAUTILUS_SCRIPT_SELECTED_URIS}-1
[ $LEN_NSSU -lt 0 ] && let LEN_NSSU=0
## if clicking happens on the Desktop (or a file or folder on it),
## $1 will be a path (i.e. with "/" in it); otherwise (in a folder
## window) $1 will be just a file or folder name (without path).
## Note that selecting the home desktop namespace extension yields
## a $# of zero but NAUTILUS_SCRIPT_SELECTED_FILE_PATHS pointing to the
## target (in the computer (computer:///) and trash (trash:///) desktop
## namespace extension cases, ...PATHS is empty).
## Initially, we stripped the file:// prefix from NAUTILUS...CURRENT_URI,
## yielding the full path, and then retrofit spaces, like this:
#OBJECT="`echo -n $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
## However, this fails if any special characters other than spaces are in the path,
## such as accented letters, etc. We need to convert not just spaces, but any
## UTF-8 embedded in there...The URI<->path conversion requires perl (and liburi-perl):
OBJECT=$( echo "$NAUTILUS_SCRIPT_CURRENT_URI" | perl -MURI -le 'print URI->new(<>)->dir' )
## ->file is to be used for file URIs instead of ->dir, which is for directory URIs
CONTEXT="$OBJECT"
## Add the selection to the path, if defined and unique
if [ $# -eq 1 ] ; then
## If a single Desktop object, override
if echo $1 | grep -q "/" ; then ## Desktop (or object on desktop)
OBJECT="$1"
CONTEXT=""
else ## $1 is a simple file or folder name, without a path
## The container could be root (/)
OBJECT="${OBJECT%/}/$1"
fi
# elif [ $# -eq 0 -a -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ] ; then
elif [ $# -eq 0 ] ; then
## desktop name space extension selected?
if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ] ; then ## Home
OBJECT="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS:0:LEN_NSSFP}"
elif [ -n "$NAUTILUS_SCRIPT_SELECTED_URIS" ] ; then ## Computer, Trash
## These typically map to root (/)
# OBJECT="`echo ${NAUTILUS_SCRIPT_SELECTED_URIS:0:LEN_NSSU} | cut -d'/' -f3- | sed 's/%20/ /g'`"
OBJECT="${NAUTILUS_SCRIPT_SELECTED_URIS:0:LEN_NSSU}"
OBJECT=$( echo "$OBJECT" | perl -MURI -le 'print URI->new(<>)->dir' )
fi
CONTEXT=""
fi
## Note that a desktop shortcut (.desktop file) does not trip -h
if [ -h "$OBJECT" ] ; then ## symbolic link
## readlink has no "follow symlinks as far as they exist" option
OBJECT=`readlink -e "$OBJECT"`
if [ -z "$OBJECT" ] ; then
zenity --error --text "$ERROR_BROKEN_LINK"
exit 1
fi
fi
# zenity --info --text "\$OBJECT is « $OBJECT »"
if [ -f "$OBJECT" ] ; then
## Regular file
DIR=`dirname "$OBJECT"`
else
## Directory (or no object)
DIR="$OBJECT"
fi
## If DIR is empty, gnome-open opens in the default (home) directory (i.e. "~") anyway
#if [ -z "$DIR" ] ; then
# DIR=~
#fi
## At this point, the test [ ! "$CONTEXT" = "$DIR" ] serves to indicate
## that the target directory is not matched to the one the script was
## invoked from (if any).
gksudo --message "$GKSUDO_MESSAGE$DIR" gnome-open "$DIR"
exit $?
Another dandy solution is to launch another copy of Nautilus with root (sudo) privileges from a command line:
gksudo xdg-open <path> &
The closing &
means the command runs as a background job; hence the use of gksudo
(using sudo
would mean an invisible prompt that you can't respond to). xdg-open
takes care of launching an explorer window (nautilus
or other).
You may need to install the xdg-utils
and gksu
packages beforehand.
You may get a bunch of warnings and Gtk-CRITICAL
and Glib-GObject-CRITICAL
messages upon closing the elevated Nautilus window, but these are harmless as far as I can tell. I'd love to get rid of them, if anyone knows how.
sudo mv /home/user/temp/[Filename] /opt
Instead of [Filename]
, type the name of your file without brackets []
.
Another easy way is
sudo gnome-open foldername
Or I would recommend installing nemo file manager. It has 'open as root' in its right click context menu