How to move all, except for the last 10 files


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to move all, except for the last 10 files
# 1  
Old 05-11-2012
How to move all, except for the last 10 files

Hi ULF,

Good day! Is there a way on how to move all the files except for the last 10 (for example). Let's say, I have 150 files in a certain directory and I want to move only the first 140 files. I know that the solution for this particular specific example would be "head -140 | mv `xargs`", but the number of files are dynamic in number and changing. Therefore I want to think of something that logically move all the files except for the last 10.
Code:
ls -lrt /home/user/logs/ | grep -i rcv | (I want to exclude the last 10 files) | awk '{print $9}' | mv `xargs` ../destination/

How to do it?


Thanks!

BR,
rymnd_12345
# 2  
Old 05-11-2012
Hi rymnd_12345,

So you want to keep the 10 files with the most recent modification date. Is like this?
# 3  
Old 05-11-2012
Hi jim mcnamara,

I can't see your suggestion, can you re-post it? Thanks! Smilie


Hi birei,

I want NOT to move the last 10 files, the reason is that there might be a possibility the a certain application is doing something (e.g open for writing) on the last file (I have just set 10 for margin).

Do you have any suggestion Sir?


Thanks!

BR,
Raymond
# 4  
Old 05-11-2012
I mean that last 10 files seems arbitrary. It must be a better condition, like sorted by name, date or similar. I guess the modification time of the files because of the switches of your list command. I don't like to process files from output of a ls -l command, many probabilities of failing.
# 5  
Old 05-11-2012
birei,

I can't get your point. Please expound further, so what am I suppose to do? Smilie


BR,
rymnd_12345
# 6  
Old 05-11-2012
Your first command is ls -ltr. -t sorts by modification time, with newest first. -r reverses the order, so last 10 files will be the newest now.

With that I guess that those 10 files you would get with ls -ltr /home/user/logs/ | tail -10 will be the most recent you have modified. With this information, you could use another approach, for example, read modification time of every file, keep the ten most recent and move the rest, but I could be wrong or make the problem more difficult.

---------- Post updated at 16:35 ---------- Previous update was at 16:20 ----------

There is a command that list all files but last ten without additional complications:
Code:
$ ls -ltr /home/user/logs/ | head -n-10

And from there you can pipe to grep, awk, xargs, etc.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Move files with a certain suffix based on how many files are in another folder

Hello, First time poster. I am looking for a way to script or program the process of moving files from one folder to another, automatically, based on the count of files in the destination folder. I was thinking a shell script would work, but am open to the suggestions of the experts... (6 Replies)
Discussion started by: comtech
6 Replies

2. Shell Programming and Scripting

SBATCH trinity for multiple files and rename/move the output files

Hey guys, I have wrote the following script to apply a module named "trinity" on my files. (it takes two input files and spit a trinity.fasta as output) #!/bin/bash -l #SBATCH -p node #SBATCH -A <projectID> #SBATCH -n 16 #SBATCH -t 7-00:00:00 #SBATCH --mem=128GB #SBATCH --mail-type=ALL... (1 Reply)
Discussion started by: @man
1 Replies

3. Shell Programming and Scripting

Move all files except sys date (today) files in Solaris 10

I want to move all files from one directory to another directory excluding today (sysdate files) on daily basis. file name is in pattern file_2013031801, file_2013031802 etc (2 Replies)
Discussion started by: khattak
2 Replies

4. Shell Programming and Scripting

Recursively move directories along with files/specific files

I would like to transfer all files ending with .log from /tmp and to /tmp/archive (using find ) The directory structure looks like :- /tmp a.log b.log c.log /abcd d.log e.log When I tried the following command , it movies all the log files... (8 Replies)
Discussion started by: frintocf
8 Replies

5. UNIX for Dummies Questions & Answers

Move same files and issue ls -al command on remaining files

I know I can use an ls -l junk1 command to get a listing of all files in the directory junk1, but I was wondering how I'd go about going through the files in junk1 in a for-in loop and issuing the ls -l command on them one by one. This is what I have so far: for file in $(ls -a $1) do ls... (1 Reply)
Discussion started by: Trinimini
1 Replies

6. Shell Programming and Scripting

How to check files and move the results to differents files?

Hi, I am a newbie to shell scripting. here is my objective: 1)The shell program should take 2 parameters - ie-> DestinationFolder, WebFolder 2)Destination folder contains few files that has to has be verified and deleted. 3)WebFolder is a folder containing a list of master files 4)It... (1 Reply)
Discussion started by: sandhyagupta
1 Replies

7. UNIX for Dummies Questions & Answers

Move files

I have multiple file with names april.0001.frm.edi april.0002.frm.edi I created a list with all the file names which has "860" inside the file and named the list as april-860-list I need to move all the files to name CHRY.860.01 CHRY.860.02 from that list. How do I do that? I... (3 Replies)
Discussion started by: yshahiac
3 Replies

8. Shell Programming and Scripting

How to move all files except one?

Hello, I have to move all files, except one, from one directory to another. I tried it with mv and find: mv -f $(find $SOURCE -maxdepth 1 ! -name "FileNotToMove") $TARGET It nearly worked out, but unfortunately not only the content of the $SOURCE directory got moved, but also the directory... (4 Replies)
Discussion started by: Kim Walisch
4 Replies

9. UNIX for Advanced & Expert Users

move files

Hi guys, I have few files on my laptop. I am connected to a network called 'asx'(intranet). I have ssh2 and reflections on my system. I need to copy these few files from my system to a folder on the server(called 'CSSX'). Please can anyone explain me how to acheive this? I am new to UNIX and... (4 Replies)
Discussion started by: uniksbro
4 Replies
Login or Register to Ask a Question