When I use mv on one of my files, it disappears - linux

When I use
mv Engine_Controls.py ~/Flight_Computer
The file disappears, but I was able to successfully move another python file without an issue into the same directory.
Also, when I type in:
sudo locate Engine_Controls.py
It says that it's in the original directory.. but it isnt.
Could somebody explain why the file is disappearing, as well as why locate says the file is still there?
edit: Problem solved.

Could you have had a typo in your mv command? Try running history | grep mv and see if you might have had a typo.
If you want to fix the 'locate' issue, try a sudo updatedb and then do your sudo locate Engine_controls.py again.
Another option would be to use the -v on the mv command. This will give you some additional info for troubleshooting. For example, if I want to move the file test to test2:
mv -v ~/test ~/test2
the output would be:
'/home/nelsone/test' -> '/home/nelsone/test2'

Related

Can't remove a linux directory using linux terminal [duplicate]

This question already has an answer here:
Delete folder that contain subfolders and files on linux
(1 answer)
Closed 1 year ago.
I've been trying to remove an unwanted file: 'PycharmProjects' but I can't seem to be able to do it. Every time I use the rm command (as in rm filename) the linux terminals says this: rm: cannot remove 'PycharmProjects': Is a directory. I've also tried trying to just unistall it from files but every time I do that an error occurs. Could you please help me.
NOTE: I use chromebook
If linux says that is a directory please try to run
rm -d filename
and if not worked try next command
rm -r dirname
here also is an article about deleting files and directories in linux command line:
https://linuxize.com/post/how-to-remove-files-and-directories-using-linux-command-line/
you would try
rm -rf "name_directory"
with rm you will use the remove command; with -r you will select anything on specified directory; and with -f you will force, omiting any rule or barrier of security so you must be careful because a rm -rf command could delete any important data from your disc so you will need admin permissions to execute that command but you will discover could be useful sometimes.
P.D. when you need help with any command you can use the man command that will show you a manual for the command selected for example in this case you can write
man rm
that will show you all the options that you can do with that command depending to the command you also can find information like the developer of the command; common structures and more interesting information.
normally the man command come preinstall in the popular distrubutions but if you type "man" and it isn´t work you could search on internet how to install the man on your linux distribution
have a nice day and welcome to linux :)
Generally, rmdir is the correct way to remove a directory in Linux (and mkdir to create a directory). If your directly is not empty, then rmdir won't remote it.
The command rm -rf <dirname> (where "dirname" is your directory's name) is the less safe way to remove a directory and all of its contents. Only use it if you're sure that the directory doesn't contain information you want to preserve. Remember the rm and rmdir commands don't put anything in a "Recycle Bin" or similar!

Need help on the tar command

Have got a problem executing the command as below:
tar -xvf arch.tar.gz -s '/^bundle//'
Could be the
-s '/^bundle//'
is a problem as I've got errors like:
$ tar -xvf arch.tar.gz -s '/^bundle//'
tar: /^bundle: Not found in archive
tar: Exiting with failure status due to previous errors
The tried to run the command under Cygwin/Win10.
It's part of the longer script but I'm not sure what was the idea of original author. Archive does include the 'bundle' folder inside... and it's the only first level file there.
Thank you in advance :)
-s does not mean to do a substitution, which seems to be how you're trying to use it. You probably want --xform='s/^bundle//'
-s has the following entry in the help listing:
-s, --preserve-order, --same-order
member arguments are listed in the same order as
the files in the archive
With your code it's actually trying to find a file with the name /^bundle// which does not exist, even if bundle does. Also, the --xform option I gave will rewrite the names of files to strip the string bundle from the front. If you are just trying to not extract the file bundle you would want the flag --exclude='bundle'
In this case, if bundle is a top level directory in the archive, and it's the only one, you could also use the flag --strip-components=1, though this would get rid of all the top level directories, so might not be exactly what you want depending on your archive
Thanks all,
Problem solved other, then 'tar', way but for those who may be interested here is the answer I have found on the web:
If you are developing on Linux, or using GNU tar, this command should work:
tar -xvf arch.tar.gz --transform 's|^bundle/||'
For Mac or BSD-based operating systems:
tar -xvf arch.tar.gz -s '/^bundle//'
Yes, the idea was to remove the /bundle/ folder from files paths.

Delete file from Unix system

I want to delete a text file from Unix machine. I am using the following command for the same.
rm /tmp/filename.txt
It is working fine. After execution it returns nothing.
I want to get some conformation about deletion as follows,
filename.txt deleted successfuly.
Please any one help me on this.
Thanks in advance.
You can use these commands:
rm /tmp/filename.txt && echo "File successfuly deleted"
this will remove the file and then (only if the exit status of command is successful) print the message.
Otherwise, as Venkat said, you can use rm -i that asks for confirmation before deleting the file.
I have used the following to slove my issue.
rm -v /tmp/filename.txt
this will display the message as follows,
removed `/tmp/filename.txt`
you can use option with Unix command please See
this link below
The below command prompts you once whether you want to remove the file before deleting it.
rm -i tmp/filename.txt
If the file is unavailable shows you :
cannot remove ‘tmp/filename.txt’: No such file or directory
Hope it helps.

linux: how to remove file with this kind of name "test\download\"?

I was trying to remove this file from server using rm command but it doesn't work. Also I can't rename this file. Please help.
Try something like
rm -i test?download*
and read glob(7) and rm(1)

Remove a symlink to a directory

I have a symlink to an important directory. I want to get rid of that symlink, while keeping the directory behind it.
I tried rm and get back rm: cannot remove 'foo'.
I tried rmdir and got back rmdir: failed to remove 'foo': Directory not empty
I then progressed through rm -f, rm -rf and sudo rm -rf
Then I went to find my back-ups.
Is there a way to get rid of the symlink with out throwing away the baby with the bathwater?
# this works:
rm foo
# versus this, which doesn't:
rm foo/
Basically, you need to tell it to delete a file, not delete a directory. I believe the difference between rm and rmdir exists because of differences in the way the C library treats each.
At any rate, the first should work, while the second should complain about foo being a directory.
If it doesn't work as above, then check your permissions. You need write permission to the containing directory to remove files.
use the "unlink" command and make sure not to have the / at the end
$ unlink mySymLink
unlink() deletes a name from the file system. If that name was the last link to a file and no processes have the file open the file is deleted and the space it was using is made available for reuse.
If the name was the last link to a file but any processes still have the file open the file will remain in existence until the last file descriptor referring to it is closed.
I think this may be problematic if I'm reading it correctly.
If the name referred to a symbolic link the link is removed.
If the name referred to a socket, fifo or device the name for it is removed but processes which have the object open may continue to use it.
https://linux.die.net/man/2/unlink
rm should remove the symbolic link.
skrall#skrall-desktop:~$ mkdir bar
skrall#skrall-desktop:~$ ln -s bar foo
skrall#skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall#skrall-desktop:~$ rm foo
skrall#skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall#skrall-desktop:~$ ls -l bar
total 0
skrall#skrall-desktop:~$
Use rm symlinkname but do not include a forward slash at the end (do not use: rm symlinkname/). You will then be asked if you want to remove the symlink, y to answer yes.
Assuming it actually is a symlink,
$ rm -d symlink
It should figure it out, but since it can't we enable the latent code that was intended for another case that no longer exists but happens to do the right thing here.
If rm cannot remove a symlink, perhaps you need to look at the permissions on the directory that contains the symlink. To remove directory entries, you need write permission on the containing directory.
Assuming your setup is something like: ln -s /mnt/bar ~/foo, then you should be able to do a rm foo with no problem. If you can't, make sure you are the owner of the foo and have permission to write/execute the file. Removing foo will not touch bar, unless you do it recursively.
I also had the same problem. So I suggest to try unlink <absolute path>.
For example unlink ~/<USER>/<SOME OTHER DIRECTORY>/foo.
On CentOS, just run rm linkname and it will ask to "remove symbolic link?". Type Y and Enter, the link will be gone and the directory be safe.
I had this problem with MinGW (actually Git Bash) running on a Windows Server. None of the above suggestions seemed to work. In the end a made a copy of the directory in case then deleted the soft link in Windows Explorer then deleted the item in the Recycle Bin. It made noises like it was deleting the files but didn't. Do make a backup though!
you can use unlink in the folder where you have created your symlink
If rm cannot remove a link, perhaps you need to look at the permissions on the directory that contains the link. To remove directory entries, you need write permission on the containing directory.

Resources