diff --git a/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp b/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp
index 4413ea365cdf33ef1afa16749f1d25827fd37679..752f0e817a7b68bf083bb72ad6c169ab6b69a250 100644
--- a/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp
+++ b/cmdline/standalone_cli_tools/common/CmdLineArgs.cpp
@@ -35,7 +35,7 @@ namespace cliTool{
 static struct option restoreFilesLongOption[] = {
   {"id", required_argument, nullptr, 'I'},
   {"instance", required_argument, nullptr, 'i'},
-  {"fxid", required_argument, nullptr, 'f'},
+  {"fid", required_argument, nullptr, 'f'},
   {"filename", required_argument, nullptr, 'F'},
   {"vid", required_argument, nullptr, 'v'},
   {"copynb", required_argument, nullptr, 'c'},
@@ -117,10 +117,10 @@ m_help(false), m_debug(false), m_standaloneCliTool{standaloneCliTool} {
       }
     case 'f':
       {
-        if (! m_fxIds) {
-          m_fxIds = std::list<std::string>();
+        if (! m_fids) {
+          m_fids = std::list<std::string>();
         }
-        m_fxIds->push_back(optarg);
+        m_fids->push_back(optarg);
         break;
       }
     case 'F':
@@ -211,7 +211,10 @@ void CmdLineArgs::readIdListFromFile(const std::string &filename) {
   while(file >> line) {
     switch (m_standaloneCliTool) {
       case StandaloneCliTool::RESTORE_FILES:
-        m_archiveFileIds.value().push_back(line);
+        if (!m_fids) {
+          m_fids = std::list<std::string>();
+        }
+        m_fids.value().push_back(line);
         break;
       case StandaloneCliTool::CTA_VERIFY_FILE:
         if (!m_archiveFileIds) {
@@ -239,8 +242,8 @@ void CmdLineArgs::printUsage(std::ostream &os) const {
   case StandaloneCliTool::RESTORE_FILES:
     os << "   Usage:" << std::endl <<
     "      cta-restore-deleted-files [--id/-I <archive_file_id>] [--instance/-i <disk_instance>]" << std::endl <<
-    "                                [--fxid/-f <eos_fxid>] [--fxidfile/-F <filename>]" << std::endl <<
-    "                                [--vid/-v <vid>] [--copynb/-c <copy_number>] [--debug/-d]" << std::endl << std::endl;
+    "                                [--fid/-f <eos_fxid>] [--filename/-F <filename>]" << std::endl <<
+    "                                [--vid/-v <vid>] [--copynb/-c <copy_number>] [--debug/-d]" << std::endl;
     break;
   case StandaloneCliTool::CTA_SEND_EVENT:
     os << "    Usage:" << std::endl <<
diff --git a/cmdline/standalone_cli_tools/common/CmdLineArgs.hpp b/cmdline/standalone_cli_tools/common/CmdLineArgs.hpp
index 5602f1dada07202d61fee652ffedf05c087f7d47..eb8c3f65e208c37474fc6e00986cece33d136b0f 100644
--- a/cmdline/standalone_cli_tools/common/CmdLineArgs.hpp
+++ b/cmdline/standalone_cli_tools/common/CmdLineArgs.hpp
@@ -67,9 +67,9 @@ struct CmdLineArgs {
   std::optional<std::string> m_diskInstance;
 
   /**
-   * Fxids of the files to restore
+   * Fids of the files to restore
    */
-  std::optional<std::list<std::string>> m_fxIds;
+  std::optional<std::list<std::string>> m_fids;
 
   /**
    * Vid of the tape of the files to restore
diff --git a/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.cpp b/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.cpp
index 100e06aec469d14f4b178e4c8f8c6c0693186fee..0feb2328957c376dab9c67e6889f1430eb815544 100644
--- a/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.cpp
+++ b/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.cpp
@@ -81,6 +81,13 @@ void IStreamBuffer<cta::xrd::Data>::DataCallback(cta::xrd::Data record) const
         deletedTapeFiles.push_back(item);
       }
       break;
+    case Data::kTflsItem:
+      {
+        const auto item = record.tfls_item();
+        const auto instanceAndFid = std::make_pair(item.df().disk_instance(), item.df().disk_id());
+        listedTapeFiles.push_back(instanceAndFid);
+      }
+      break;
     default:
       throw std::runtime_error("Received invalid stream data from CTA Frontend for the cta-restore-deleted-files command.");
    }
@@ -183,7 +190,7 @@ void RestoreFilesCmd::readAndSetConfiguration(
 
   m_vid = cmdLineArgs.m_vid;
   m_diskInstance = cmdLineArgs.m_diskInstance;
-  m_archiveFileIds = cmdLineArgs.m_archiveFileIds;
+  m_fids = cmdLineArgs.m_fids;
   m_copyNumber = cmdLineArgs.m_copyNumber;
   m_archiveFileId = cmdLineArgs.m_archiveFileId;
 
@@ -193,6 +200,10 @@ void RestoreFilesCmd::readAndSetConfiguration(
     m_log.setLogMask("INFO");
   }
 
+  if (m_fids && !m_diskInstance) {
+    throw XrdSsiPb::UserException("Disk instance must be provided when fids are used as input.");
+  }
+
   // Set CTA frontend configuration options
   const std::string cli_config_file = "/etc/cta/cta-cli.conf";
   XrdSsiPb::Config cliConfig(cli_config_file, "cta");
@@ -311,12 +322,12 @@ void RestoreFilesCmd::listDeletedFilesCta() const {
     new_opt->set_key(key);
     new_opt->set_value(m_copyNumber.value());
   }
-  if (m_archiveFileIds) {
+  if (m_fids) {
     std::stringstream ss;
     auto key = cta::admin::OptionStrList::FILE_ID;
     auto new_opt = admincmd.add_option_str_list();
     new_opt->set_key(key);
-    for (auto &fid : m_archiveFileIds.value()) {
+    for (const auto &fid : m_fids.value()) {
       new_opt->add_item(fid);
       ss << fid << ",";
     }
diff --git a/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.hpp b/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.hpp
index e88a6a4019eb2e215460130beb3bb4b88f65c143..1c269ffdebf9b7cf25848541cf644fded03ab7b5 100644
--- a/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.hpp
+++ b/cmdline/standalone_cli_tools/restore_files/RestoreFilesCmd.hpp
@@ -184,7 +184,7 @@ private:
   /**
    * Fids of the files to restore
    */
-  std::optional<std::list<std::string>> m_archiveFileIds;
+  std::optional<std::list<std::string>> m_fids;
 
   /**
    * Vid of the tape of the files to restore